工作日志五 数据库某个表利用存储过程状态校验处理

     存在三种状态的记录,一个是禁用的,一个是可用的,一个是已经删除的。

create procedure getCheckTableData 
(@tableName varchar(100),@oldIStatus varchar(100),@cSourceGUIDS varchar(6000),@data varchar(1000) output)
as
declare 
        @iStatus int,
        @newIStatus varchar(100),
        @cGUID varchar(18),
        @sql nvarchar(4000)
 
   set @newIStatus ='iStatus'
   begin
   if(@oldIStatus <>'')
     set @newIStatus=@oldIStatus
   end
  set   @cSourceGUIDS=@cSourceGUIDS+';' 
   print @cSourceGUIDS
  while(@cSourceGUIDS<>'')  
       begin  
                        set @cGUID=left(@cSourceGUIDS,charindex(';',@cSourceGUIDS,1)-1)

                        if(@cGUID <> '')
                          begin
       set @sql = N'set @iStatus=(select '+@newIStatus+' from '+@tableName+' where cGUID='+''''+@cGUID+''''+')'
       print @sql
       exec sp_executesql @sql,N'@iStatus int output',@iStatus output
                            begin
                            if(@iStatus is null)
                                set @iStatus = -1
                              end
       set @data=@data+@cGUID+','+cast(@iStatus as varchar(12))+';'
                        end
                        set   @cSourceGUIDS=stuff(@cSourceGUIDS,1,charindex(';',@cSourceGUIDS,1),'')  
 print @data
end  
 --print @data
 ----调用
execute  getCheckTableData 'cm_material','iStatus','003guid;00sguid',data

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值