UPDATE表,其中包含来自不同DB中的表的值

时间:2014-10-08 10:34:05

标签: sql sql-server ssms

刚开始使用SSMS并且难以使简单的SQL命令起作用。我已尝试使用导入/导出向导,但它不起作用,因为目标表具有源列中不可用的列,并且这些列不允许NULL值。

所以,我需要编写一个SQL命令,我可以在其中指定那些值不为NULL的列。我相信实现这一目标的正确方法是使用UPDATE?我一直在尝试更新主键:

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

执行时,我收到以下消息:

  

(0行(s)受影响)

2 个答案:

答案 0 :(得分:0)

SQL Server中两个表(无论数据库)更新的基本思路是这样的:

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

换句话说,您需要确定两个表之间的行匹配方式,然后您可以将一个表中的值设置为另一个表中的值。

答案 1 :(得分:0)

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