【发布时间】:2015-06-10 20:24:49
【问题描述】:
我有一个名为 dbo.Movies 的表,现在我想更新 3 行
此语句仅适用于一条记录
declare @movietype nvarchar(100) = 'Thriller'
declare @price real = 10
if @price < (select Price from dbo.Movies where MovieType = @movietype)
begin
update mo
set mo.Price = Price - @price
FROM dbo.Movies as mo
WHERE mo.MovieType = @movietype
end
但是当我尝试运行此语句来更新这 3 行时,我得到了错误
“消息 512,第 16 级,状态 1,第 3 行 子查询返回超过 1 个值。当子查询跟随 =、!=、、>= 或子查询用作表达式时,这是不允许的。"
如何修复此查询以更新 3 行或更多行?
【问题讨论】:
-
我猜你想避免负价格。在这种情况下,删除
if并添加and Price >= @price以更新 where 子句中的查询。
标签: sql sql-server-2012