存储过程名: Web_Change  ,用于修改用户密码
需要传入的参数如下:
@password varchar(16),
@userid int
现在需要修改的密码的UserID在表Users中我现在怎么利用这个存储过程来批量修改Users中所有ID的密码呢?

解决方案 »

  1.   

    update [users] set password = @password??????
      

  2.   


    CREATE PROC Web_Change
    @password varchar(16), 
    @userid int 
    AS
      UPDATE Users SET password =@password WHERE UserID=@userid
    GO
      

  3.   

    create proc Web_Change
    @password varchar(16), 
    @userid int 
    as update Users set password =@password where userid=@userid or @userid=''
      

  4.   

    Web_Change
    -----------
    这个存储过程已经写好了 要修改密码所要做的逻辑。
    看来是我没说清楚不是要写这个存储过程,是要用这个存储过程来批量修改密码
      

  5.   

    批量修改? 有个表存放要变更的 password, userid int ?
      

  6.   

    如果可以修改存储过程,那按6楼修改是最简单的,你的@userid 参数传个''过去就修改全部,否则修改一个如果不能修改存储过程,可能游标是唯一的方法
      

  7.   

    游标用法:SET NOCOUNT ONDECLARE @Userid intDECLARE t_cursor CURSOR FOR 
    SELECT UserID
    FROM T_User
    ORDER BY UseridOPEN t_cursorFETCH NEXT FROM t_cursor 
    INTO @UseridWHILE @@FETCH_STATUS = 0
    BEGIN
       exec Web_Change '新的密码',@Userid
       
       FETCH NEXT FROM t_cursor 
       INTO @Userid
    ENDCLOSE t_cursor
    DEALLOCATE t_cursor