CREATE PROCEDURE Test11 @Rows int,@Id varchar(50),@Name varchar(50),@ReturnId int output 
AS 
begin
select @Rows=Count(*)  from b 
where   Id=@Id and [Name] =@Name
if(@Rows>0 )
(select NOW from b where   Id=@Id and [Name] =@Name) 
(update b set NOW=NEXT and NEXT=NEXT+INC where   Id=@Id and [Name] =@Name)else print 'B'end我想在select 后 update
并且存储过程只能同时容许一个线程执行
谢谢大家!!!

解决方案 »

  1.   

    估计LZ想更新某条数据开始后的所有序号:if exists (select 1 from tb where Id=@Id and [Name] =@Name)
        update tb set ColIndex=ColIndex+1 where ColIndex>=(select ColIndex from tb where Id=@Id and [Name] =@Name)
    else print 'B'
      

  2.   

    CREATE PROCEDURE Test11 @Rows int,@Id varchar(50),@Name varchar(50),@ReturnId int output 
    AS 
    begin
    select @Rows=Count(*)  from b 
    where   Id=@Id and [Name] =@Name
    if(@Rows>0 )
    begin     ---if语句中有两条以上的语句时用Bgein  封装
         (select NOW from b where   Id=@Id and [Name] =@Name)  
         (update b set NOW=NEXT and NEXT=NEXT+INC where   Id=@Id and [Name] =@Name)
    end
    else 
    print 'B'end