私はOracleに精通しているので、SQLServer2008の構文に驚かされます。と同等のクエリで複数の行の更新を実行しようとしています
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'
サブクエリによる更新が機能するはずだと読みましたが、それは私の経験ではありません。ここにもっと基本的なものが欠けていますか?助けてくれてありがとう!