我编写存储过程以进行更新。
create procedure sp_videos_updateviews (@videoid varchar(50),@ret int output)
as
set @ret = update videos set [views]=[views]+1
where videoid = @videoid
if(@ret>1)
begin
set @ret=1
end
else
begin
set @ret=0
end
但它会给出这样的错误
关键字'update'附近的语法不正确。
答案 0 :(得分:6)
您无法将变量设置为UPDATE语句。如果您尝试在更新结束时获取行计数,请尝试以下操作:
UPDATE vidoes SET [views] = [views] + 1
WHERE videoid = @videoid
SET @ret = @@ROWCOUNT
答案 1 :(得分:2)
苏里亚,
从我收集的内容中,您希望从proc a 1或0返回,具体取决于是否有任何记录从您的proc更新。我同意@@ ROWCOUNT是你应该去的地方,试试这个代码:
create procedure proc_videos_updateviews (@videoid varchar(50),@ret int output)
as
update videos set [views]=[views]+1
where videoid = @videoid
if(@@ROWCOUNT > 0)
begin
set @ret = 1
end
else
begin
set @ret = 0
end