日期:2014-05-20  浏览次数:20924 次

批量改变字段值 的储存过程
参数有@tableName表名,@changeField要改变值的字段,@stateValue要改变的值,@whereStr 求详细储存啊,各位高手教教我

------解决方案--------------------
最好把”@changeField要改变值的字段,@stateValue要改变的值” 拼接好啊,因为你改的可能是多个字段
C# code


CREATE   PROCEDURE dbo.aa_updatedata
(    
    @strTbName     nvarchar(50),
    @strFldContent     nvarchar(4000),
    @strCondition     nvarchar(1000),
    @strMsg     nvarchar(200) output
)
as
set nocount on 
set ansi_nulls off 
declare @iCount     int,
    @iError         int
declare @strTmp     nvarchar(4000)
set @strTmp=''
set @strMsg=''

--更新数据 
if @strCondition is null or @strCondition=''
    set @strTmp='update '+@strTbName+' set '+@strFldContent
else
    set @strTmp='update '+@strTbName+' set '+@strFldContent+' where '+@strCondition
exec sp_executesql @strTmp
set @iError=@@error
if @iError<>0
begin
    if @iError=547
        set @strMsg='保存失败!您所选择的信息已被其他用户删除,请重新选择!'
    else
        set @strMsg='保存失败!输入内容太长,请重新输入!'    
    return -1
end
set @strMsg='保存成功!'

return 0

GO