Kim*_*nce 3 sql t-sql sql-server sql-server-2008
我正在使用SQL Server 2008 R2.有一个主表(表A),并尝试使用临时表中的值更新它(表B).
SQL Server错误输出,说子查询返回了多个值,但是由于子查询返回的值是表B的主键,因此我看不出这是怎么回事.
这是查询:
UPDATE TableA
SET TableA.field = (SELECT TableB.field
FROM TableA
INNER JOIN TableB ON TableA.key = TableB.key)
Run Code Online (Sandbox Code Playgroud)
像往常一样,任何帮助都非常感谢!
您的子查询根本不相关.子查询中的标识符"TableA.key"引用子查询的FROM子句中的TableA,而不是更新的目标表(也发生在TableA中).您不希望使用两表连接的结果集更新TableA.field.你只想要这个:
UPDATE TableA
SET TableA.field = (SELECT TableB.field
FROM TableB
WHERE TableA.key = TableB.key)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13372 次 |
最近记录: |