2017-07-26 77 views
-3

我有表格a,表格b具有相同的列。我想用表格值替換表格b中的值而不使用update關鍵字。如何在不使用更新關鍵字的情況下更新表格

+0

可能的重複[如何在SQL中使用JOIN執行UPDATE語句?](https://stackoverflow.com/questions/1293330/how-can-i-do-an-update-statement-with-join -in-sql) –

+0

這是作業或錯誤的問題,但在任何情況下,我認爲你唯一的選擇是從目標表中刪除這些記錄,然後做一個插入;但由於數據一致性問題,您在實踐中絕不會這樣做。 –

+1

可能的重複https://stackoverflow.com/questions/4646327/update-table-without-using-update-statement – Vikrant

回答

1

這個問題可以在表結構使用更多的細節,你想要什麼來完成,什麼使你不能使用UPDATE,但在這裏有雲:

CREATE TABLE #tempTable (col1, col2, col3, ...) 

INSERT INTO #tempTable 
SELECT 
b.col1 
, b.col2 
, a.col3 
, ... 
FROM a 
INNER JOIN b 
ON a.col1 = b.col1 

DELETE FROM b 
WHERE col1 IN (SELECT col1 FROM a) 

INSERT INTO b 
SELECT 
col1 
, col2 
, col3 
, ... 
FROM #TempTable 

這當然使大膽假設表a和b共享主鍵,並且表b沒有任何約束來阻止刪除匹配的行。請提供一些更詳細的信息,我會相應地更新我的答案。

相關問題