CREATE  PROCEDURE PRO_GetXiputu
@i_id int, --唯一标实
                  @i_key    varchar(20),--要更新的字段名
                  @i_value  varchar(20),--要更新的字段值
                  @o_retcode int output,--返回码
                  @o_retnote varchar(100) output
WITH ENCRYPTION 
AS BEGIN
exec('
     update 表 set username='myname'
       where id=@id ....
')
END

解决方案 »

  1.   

    CREATE  PROCEDURE PRO_GetXiputu
    @i_id int, --唯一标实
                      @i_key    varchar(20),--要更新的字段名
                      @i_value  varchar(20),--要更新的字段值
                      @o_retcode int output,--返回码
                      @o_retnote varchar(100) output
    WITH ENCRYPTION 
    AS BEGIN
    exec('
         update 表 set username='myname'
           where id=@id ....
    ')
    ENDupdate 表 set username='myname'  --这里@i_key = 'username',如果更新passwd那么@i_key = 'passwd'
    我的意思是能否不用case语句或者if语句这样的分支结构直接用一句语句更新吗?
      

  2.   

    CREATE  PROCEDURE PRO_GetXiputu
    @i_id int, --唯一标实
                      @i_key    varchar(20),--要更新的字段名
                      @i_value  varchar(20),--要更新的字段值
                      @o_retcode int output,--返回码
                      @o_retnote varchar(100) output
    WITH ENCRYPTION 
    AS BEGIN
    exec('
         update 表 set '+@i_key+'=+@i_value+' where id='+@i_id)
    END