Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Get a rownumber
Message
General information
Forum:
Microsoft SQL Server
Category:
Other
Title:
Miscellaneous
Thread ID:
01525672
Message ID:
01525784
Views:
37
>>>youre supposed to update on primary key.....
>>
>>Doesn't work here. The table is constructed entirely in code cell by cell. There is no PK. In effect the 'rank' column I added becomes the primary key.
>
>So aside from your 'rank' column you have rows that are exact duplicates of other rows? If so, then your 'rank' column is effectively your primary key. You can certainly declare it the primary key in code. you don't have to declare the primary key, but it is good practice.
>
>If you do not have exact duplicate rows (aside from the 'rank' column) then you can declare (or just assume) the primary key as a composite of those columns that will always produce a unique record.

You are correct, and I agree. It's just that in my situation it's easier to do this way. See my code below (which is incomplete). COLUMN1 will be unique but it's contents are unknown at design time. So it becomes much easier to create the RANK column and use it as the primary key. The final table will only have 16 records but an unknown number of columns. It ultimately will be populated via a series of loops containing SELECTS and probably some additional processing. This may not be the best way to do this but given my skill level it seems the most straightforward. I had done it previously in VFP and it seemed to work fine (and was easier).
Thanks to all who jumped in. Hopefully the code below will help explain what I am doing.
Dim year0 As String = Session("tipYear") - 1.ToString
		Dim year1 As String = Session("tipYear").ToString
		Dim year2 As String = Session("tipYear") + 1.ToString
		Dim year3 As String = Session("tipYear") + 2.ToString
		Dim year4 As String = Session("tipYear") + 3.ToString
		Dim year5 As String = Session("tipYear") + 4.ToString

		Dim SQL As String = "CREATE TABLE #TempConstraint (rank int, column1 varchar(25))"
		Dim oConn As New SqlConnection(ConfigurationManager.ConnectionStrings("TIPConnectionString").ConnectionString)

		Dim oCommand As New SqlCommand(SQL, oConn)
		oConn.Open()

		oCommand.ExecuteNonQuery()
		oCommand.CommandText = "INSERT INTO #TempConstraint (rank, column1) VALUES (1, 'FY" + year0 + " Balance/Carryover')"
		oCommand.ExecuteNonQuery()
		oCommand.CommandText = "INSERT INTO #TempConstraint (rank, column1) VALUES (2, 'FY" + year1 + " Revenues')"
		oCommand.ExecuteNonQuery()
		oCommand.CommandText = "INSERT INTO #TempConstraint (rank, column1) VALUES (3, 'FY" + year1 + " Expenses')"
		oCommand.ExecuteNonQuery()
		oCommand.CommandText = "INSERT INTO #TempConstraint (rank, column1) VALUES (4, 'FY" + year1 + " Balance/Carryover')"
		oCommand.ExecuteNonQuery()
		oCommand.CommandText = "INSERT INTO #TempConstraint (rank, column1) VALUES (5, 'FY" + year2 + " Revenues')"
		oCommand.ExecuteNonQuery()
		oCommand.CommandText = "INSERT INTO #TempConstraint (rank, column1) VALUES (6, 'FY" + year2 + " Expenses')"
		oCommand.ExecuteNonQuery()
		oCommand.CommandText = "INSERT INTO #TempConstraint (rank, column1) VALUES (7, 'FY" + year2 + " Balance/Carryover')"
		oCommand.ExecuteNonQuery()
		oCommand.CommandText = "INSERT INTO #TempConstraint (rank, column1) VALUES (8, 'FY" + year3 + " Revenues')"
		oCommand.ExecuteNonQuery()
		oCommand.CommandText = "INSERT INTO #TempConstraint (rank, column1) VALUES (9, 'FY" + year3 + " Expenses')"
		oCommand.ExecuteNonQuery()
		oCommand.CommandText = "INSERT INTO #TempConstraint (rank, column1) VALUES (10, 'FY" + year3 + " Balance/Carryover')"
		oCommand.ExecuteNonQuery()
		oCommand.CommandText = "INSERT INTO #TempConstraint (rank, column1) VALUES (11, 'FY" + year4 + " Revenues')"
		oCommand.ExecuteNonQuery()
		oCommand.CommandText = "INSERT INTO #TempConstraint (rank, column1) VALUES (12, 'FY" + year4 + " Expenses')"
		oCommand.ExecuteNonQuery()
		oCommand.CommandText = "INSERT INTO #TempConstraint (rank, column1) VALUES (13, 'FY" + year4 + " Balance/Carryover')"
		oCommand.ExecuteNonQuery()
		oCommand.CommandText = "INSERT INTO #TempConstraint (rank, column1) VALUES (14, 'FY" + year5 + " Revenues')"
		oCommand.ExecuteNonQuery()
		oCommand.CommandText = "INSERT INTO #TempConstraint (rank, column1) VALUES (15, 'FY" + year5 + " Expenses')"
		oCommand.ExecuteNonQuery()
		oCommand.CommandText = "INSERT INTO #TempConstraint (rank, column1) VALUES (16, 'FY" + year5 + " Balance/Carryover')"
		oCommand.ExecuteNonQuery()

		Dim oConn2 As New SqlConnection(ConfigurationManager.ConnectionStrings("TIPConnectionString").ConnectionString)
		Dim oCommand2 As New SqlCommand("SELECT [fundtype] FROM [FundTypes] WHERE ([constrain] = 1) ORDER BY [FundType]", oConn2)
		oConn2.Open()

		Dim oReader As SqlDataReader = oCommand2.ExecuteReader()
		'oReader.Read()

		While oReader.Read()
			'x = oReader("FundType")
			'''''''''' Populate the table with sample data ''''''''''''''''''
			oCommand.CommandText = "ALTER TABLE #TempConstraint Add " + oReader("FundType") + " Numeric(12,2)"
			oCommand.ExecuteNonQuery()
			oCommand.CommandText = "UPDATE #TempConstraint SET [" + oReader("FundType") + "] = 100 WHERE (rank = 1)"
			oCommand.ExecuteNonQuery()
			oCommand.CommandText = "UPDATE #TempConstraint SET [" + oReader("FundType") + "] = 200 WHERE (rank = 2)"
			oCommand.ExecuteNonQuery()
			oCommand.CommandText = "UPDATE #TempConstraint SET [" + oReader("FundType") + "] = 300 WHERE (rank = 3)"
			oCommand.ExecuteNonQuery()
			oCommand.CommandText = "UPDATE #TempConstraint SET [" + oReader("FundType") + "] = 400 WHERE (rank = 4)"
			oCommand.ExecuteNonQuery()
			oCommand.CommandText = "UPDATE #TempConstraint SET [" + oReader("FundType") + "] = 500 WHERE (rank = 5)"
			oCommand.ExecuteNonQuery()
			oCommand.CommandText = "UPDATE #TempConstraint SET [" + oReader("FundType") + "] = 600 WHERE (rank = 6)"
			oCommand.ExecuteNonQuery()

		End While
		oReader.Close()
Previous
Reply
Map
View

Click here to load this message in the networking platform