2013-11-27 94 views
1

行我有在裏面兩列的臨時表,如下圖所示:迭代一個臨時表的每一行更新另一個表中的SQL

CREATE TABLE #Temp1 (
    id VARCHAR(50), 
    gid int NULL 
) 

我的問題是,我需要遍歷每個行在#Temp1和更新另一個表,如下所示,雖然我正在努力如何在SQL腳本中做到這一點?任何人都可以爲我提供這個嗎?

foreach(row in #Temp1) 
{ 
    UPDATE MyTable SET Column1 = row.gid WHERE id = row.id 
} 

非常感謝, 詹姆斯

+0

爲什麼如果我可能會問,是否有一個帶有數據類型varchar(50)的id? – NickyvV

+0

就在我快速寫下時,就是我用過的。 –

回答

4

你可以簡單地做一個表的東西之間加入這樣的

UPDATE M 
SET M.Column1 = T.gid 
FROM #Temp1 T INNER JOIN MyTable M 
ON T.id = M.id 
+0

感謝您的快速回復。 –

+0

沒問題,很高興幫忙:) –

0

我想這應該做你需要什麼

Update MyTable 
Set column1 = (Select gid FROM #Temp1 t WHERE t.Id = MyTable.Id) 
+0

我收到以下錯誤信息8169,級別16,狀態2,行1 轉換從字符串轉換爲uniqueidentifier時失敗。 –

+0

數據類型MyTable.Id = uniqueidentifier,非空 –

+0

有什麼想法?謝謝 –

相關問題