我更熟悉 Oracle,所以 SQL Server 2008 的语法让我很吃惊。我正在尝试使用等效于的查询来执行多行的更新
update Table
set type = 'typeA'
where id in
(select id from Table where type='typeB')
我收到以下错误:
Msg 512, Level 16, State 1, Procedure Assigned_To_Email, Line 19
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
搜索特定于 TSQL 的解决方案时,我尝试了以下语法,但收到了相同的错误。
update a
set type = 'typeA'
from Table a
join Table b
on a.id = b.id
where b.type='typeB'
我已经读过使用子查询的更新应该可以工作,但这不是我的经验。这里有没有更基本的东西?谢谢你的帮助!