【发布时间】:2013-01-07 20:33:00
【问题描述】:
我有以下 SQL 查询:
UPDATE db1.dbo.oitems
SET f2 = oo.f2,
f3 = oo.f3,
f4 = oo.f4
FROM db1.dbo.oitems o
INNER JOIN db2.dbo.oitems oo
ON o.orderid = oo.orderid
每个表都在不同的数据库中,它们具有相同的列,但数据不同,其中 id 匹配但数据不匹配。我只想为表中的列 f2、f3、f4 设置值,如果它们具有相同的 orderid,我想更新为第二个表中的值。上面的命令一直说 0 行受到影响,那么我的逻辑有什么问题?
【问题讨论】:
-
update子句中的表必须与from子句中的表相关或相同 - 这意味着您可能在 db1 表中编写了update o ...或省略别名。
标签: sql sql-server sql-server-2008-r2 sql-server-2012