我有一个表  MyTab
  ----------
  ID   ClassType     OrderNum
  1      2             1
  2      3             1
  2      3             2我想写一个存储过程 Inc_OrderNum,该存储过程有一个@ClassType参数,
调用 exec  Inc_OrderNum 3 之后,
对OrderNum字段批量更新 ClassType =3的记录,即 符号条件的每条记录的OrderNum 字段都加1 )  
  MyTab
  ----------
  ID   ClassType     OrderNum
  1      2             1 
  2      3             2         //1+1
  2      3             3         //2+1CREATE PROCEDURE Inc_OrderNum
(
@ClassType     int
)
AS   --请问这个存储过程怎么写呢?,谢谢各位大侠!!!
   GO
  
  

解决方案 »

  1.   

    CREATE PROCEDURE Inc_OrderNum 

    @ClassType    int 

    AS   UPDATE MATAB SET   OrderNum =OrderNum +1 WHERE  ClassType    =@ClassType    GO?
      

  2.   

    update 
     MyTab
    set
     OrderNum=OrderNum+1
    where
     ClassType=@ClassType
      

  3.   

    CREATE PROCEDURE Inc_OrderNum 

    @ClassType    int 

    AS   UPDATE MATAB SET   OrderNum =OrderNum +1 WHERE  ClassType    =@ClassType    GO
      

  4.   

    create proc Inc_OrderNum @ClassType int
    as
    begin
    update MyTab
    set OrderNum = OrderNum + 1
    where ClassType = @ClassType
    end
      

  5.   

    --> 测试数据:[MyTab]
    if object_id('[MyTab]') is not null drop table [MyTab]
    create table [MyTab]([ID] int,[ClassType] int,[OrderNum] int)
    insert [MyTab]
    select 1,2,1 union all
    select 2,3,1 union all
    select 2,3,2select * from CREATE PROCEDURE Inc_OrderNum
    (
    @ClassType    int
    )
    AS 
    update [MyTab] set [OrderNum]=[OrderNum]+1 where [ClassType]=@ClassType
    drop table [MyTab]
    exec Inc_OrderNum 3select * from [MyTab]
    /*
    ID          ClassType   OrderNum
    ----------- ----------- -----------
    1           2           1
    2           3           2
    2           3           3(3 行受影响)*/drop table [MyTab]
      

  6.   


    CREATE PROCEDURE P_ChangeOrderNum 

    @ClassType    int 

    AS   UPDATE MATAB SET OrderNum =OrderNum +1 WHERE  ClassType =@ClassType    GO
      

  7.   

    --> 测试数据:[MyTab]
    if object_id('[MyTab]') is not null drop table [MyTab]
    create table [MyTab]([ID] int,[ClassType] int,[OrderNum] int)
    insert [MyTab]
    select 1,2,1 union all
    select 2,3,2 union all
    select 2,3,3select * from [MyTab]CREATE PROCEDURE Inc_OrderNum 

    @ClassType    int 

    AS 
    begin 
    update mytab
    set OrderNum = OrderNum+1
    where ClassType   = @ClassType;
    end
    exec Inc_OrderNum 3