我想问一下关于SQL Server 2008的查询更新。更新表超过1行
我想用这样的查询更新多于1行的表。
update #temp_cost
set acct_cd = (
select acc_no from acc_gltrans
where voucher like 'SCS/GR%'
and debit_credit > 0
)
where grn_no = (
select voucher from acc_gltrans
where voucher like 'SCS/GR%'
and debit_credit > 0
);
,但得到这样的错误
子查询返回多个值。当子查询遵循=,!=,<,< =,>,> =或当子查询用作表达式时,这是不允许的。
我希望有人能帮助我解决这个问题, 感谢
我不是专家,但显然你的子查询的一个返回多个值。您不能将'acct_cd'设置为多个值。 –
如果要更新sql server中的多行,可以使用IN运算符代替=运算符。 –