2014-10-08 151 views
0

剛剛開始使用SSMS並且難以使簡單的SQL命令正常工作。我嘗試過使用導入/導出嚮導,但它不起作用,因爲目標表具有源列中不可用的列,並且這些列不允許NULL值。使用不同數據庫中表格的值更新表格

所以,我需要寫一個SQL命令,我可以指定那些非NULL值的列。我相信實現這個的正確方法是使用UPDATE?我一直在嘗試只是更新的主鍵:

UPDATE db1.dbo.Customer 
SET No_ = v4.No_ 
FROM db2.dbo.Customer as v4 

在執行我得到以下信息:

(0行(S)的影響)

+0

你是什麼意思「指定那些非NULL值的列」? – 2014-10-08 10:35:57

+1

嗨。我的意思是我需要在這些列中設置一個值。他們是BOOLEAN,所以我最終可以通過代碼將它設置爲FALSE,因爲Wizard不允許我這樣做。我只是想解釋爲什麼巫師不適合我。 – 2014-10-08 10:37:34

回答

0

的基本思想從SQL Server中的兩個表(不管數據庫)更新將是這樣的:

UPDATE c1 
    SET No_ = v4.No_ 
FROM db1.dbo.Customer c1 JOIN 
    db2.dbo.Customer v4 
    ON c1.CustomerId = v4.CustomerId; 

換句話說,您需要確定兩個表之間的行如何匹配,然後您可以將一個表中的值設置爲另一個表中的值。

+0

再次感謝!看起來這些表格之間存在多個衝突,因爲其中一個版本的版本較舊。可能只需要使用.csv文件。 – 2014-10-08 10:49:55

0
UPDATE db1.dbo.Customer 
SET No_ = c1.No_ 
FROM db2.dbo.Customer as 'c1' 
WHERE 
    db1.dbo.Customer.CustomerID = c1.CustomerID