也許有更好的辦法可以解決這個問題,但這必須有些動態。SQL Server 2008:用於檢索和替換數據的光標
從vb.net窗體我需要恢復或從一個表中的數據替換到另一個。除了幾個不同的列以外,這兩個表是相同的。
首先我寫了一些SQL來獲取傳入的表的列名。然後通過序數位置,我只獲取我想要的值的表。我將這些表名存儲在臨時表中。
現在我想使用臨時表列名從備份表中獲取這些值,並將它們放在主表中。
所以我想我想我需要一個遊標以某種方式循環..自大學和哇,我沒有觸及遊標。
我會讓自己難堪併發布我當前的代碼。
SET @getColCURSOR = CURSOR FOR
SELECT name
FROM #MyTempTable --created previously as table only holding column names
OPEN @getColCURSOR
FETCH NEXT FROM @getColCURSOR
INTO @columnName
WHILE @@FETCH_STATUS = 0
BEGIN
select @columnName --this variable should as a column name and change
from AUDIT_TABLE a where a.ID = 7 -- 7 is just for testing is dynamic variable
FETCH NEXT FROM @getColCURSOR
INTO @columnName
END
CLOSE @getColCURSOR
DEALLOCATE @getColCURSOR
很難說出你在問什麼。請使用表格定義和示例數據來展開「我需要將數據從一個表格恢復或替換爲另一個表格」。 –
向我們展示您的審計表結構和您的主表結構。 CAn您的審計表包含相同ID的多個記錄? – HLGEM
審計表基本上是每個表的備份(即觸發器跟蹤更改)。每個審計表都有一個自發的PK,裏面是它備份的表的主鍵。我爲表格提供了一個下拉列表,並在datagridview中顯示列。在選擇你捕獲各種數據發送到查詢/存儲特效,以恢復用戶可能做了些什麼......愚蠢的變化。 – DJPlayer