更新存储过程?

时间:2010-01-04 11:49:07

标签: sql-server

我编写存储过程以进行更新。

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'附近的语法不正确。

2 个答案:

答案 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