【发布时间】:2009-03-16 13:01:11
【问题描述】:
我有两个表,一个更新的目的地:
create table dest (value int)
insert into dest values (0)
以及来源:
create table source (value int)
insert into source values (4)
insert into source values (1)
如果我运行这个查询:
UPDATE dest SET value = (select value from source WHERE 1=1)
SQL Server 失败并显示:
Subquery returned more than 1 value. This is not permitted when
the subquery follows =, !=, <, <= , >, >= ...
这是完美的。但是如果我运行这个查询:
UPDATE dest SET value = source.value FROM dest INNER JOIN Source ON 1=1
...它从 source 中随机选择一个值并用它更新 dest。
可怕吗?有对此的解释吗?
【问题讨论】:
标签: sql-server sql-server-2005 sql-server-2008