我需要先查询一个结果,把查询的结果返回,然后把再把数据库更新,
[code=SQL]
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) --NOW是我查询的
(update b set NOW=NEXT and NEXT=NEXT+INC where   Id=@Id and [Name] =@Name)--更新数据库else print 'B'end[/SQL]
数据库
ID  Nane   INC  NOW NEXT
A    AA      1   12   13
是一个自动编号
先查询现在编号Now(12),查询后把步长值(INC 1)查询出来
更新下一个编号 更新后NOW=Next   13
Next=Next+now   13+1

解决方案 »

  1.   

    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) --NOW是我查询的 
    (update b set NOW=NEXT and NEXT=NEXT+INC where  Id=@Id and [Name] =@Name)--更新数据库 else print 'B' end 
      

  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 )
    update b set NOW=NEXT,NEXT=NEXT+INC where  Id=@Id and [Name] =@Name--更新数据库else print 'B'語法一堆錯看聯機,看看上面是不是要的結果
      

  3.   

    不是!!
    if(rows>0)
    {
      先查询结果
       在更新
    }
    else
    {}
      

  4.   

    我需要先查询一个结果,把查询的结果返回,然后把再把数据库更新, 
     
    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) --NOW是我查询的 
    (update b set NOW=NEXT and NEXT=NEXT+INC where  Id=@Id and [Name] =@Name)--更新数据库 else print 'B' end  
    数据库 
    ID  Nane  INC  NOW NEXT 
    A    AA      1  12  13 
    是一个自动编号 
    首先查询存不存在
    如果存在
    再查询现在编号Now(12),查询后把步长值(INC 1)查询出来 
    更新下一个编号 更新后NOW=Next  13 
    Next=Next+now  13+1
      

  5.   

    --??
    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 --NOW是我查询的 
    update b set NOW=NEXT where  Id=@Id and [Name] =@Name --更新数据库 
    update b set NEXT=NEXT +INC  where  Id=@Id and [Name] =@Name --更新数据库 
    else print 'B' 
    end 
      

  6.   


    CREATE PROCEDURE Test11 @Rows int,@Id varchar(50),@Name varchar(50),@ReturnId int output 
    AS 
    begin 
    set nocount on
    select @Rows=Count(*)  from b 
    where  Id=@Id and [Name] =@Name 
    if @Rows>0 
    begin
    select NOW from b where  Id=@Id and [Name] =@Name
    update b set NOW=NEXT,NEXT=NEXT+INC where  Id=@Id and [Name] =@Name
    end
    else print 'B' 
    set nocount off
    end 
    go