博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
--生成动态语句的程序
declare @tname varchar(20), --表名
        @lstr1 varchar(50), --要替换的字符串
        @lstr2 varchar(50),  --替换后的字符串
         @sqlstr varchar(1000)

set @tname='test_table'  --赋要替换的表名
set @lstr1='ccc'
set @lstr2='ddd'
set @sqlstr=''

select @sqlstr=@sqlstr+',['+rtrim(a.name)+']=replace(['+rtrim(a.name)+'],'''+@lstr1+''','''+@lstr2+''')'
from syscolumns a,systypes b
where a.id=object_id(@tname) and a.xtype=b.xtype and charindex(','+rtrim(b.name)+',',',char,varchar,nchar,nvarchar,')>0

set @sqlstr='update '+@tname+' set '+stuff(@sqlstr,1,1,'')

exec (@sqlstr) --执行动态语句

  释义:循环test_table表中的所有字段,并替换字段的值ccc为ddd