首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql ntext 轮换存储过程

2012-10-08 
sql ntext 替换存储过程[SQL]代码view source print?01create procedure replace_ntext?????????? 02??@ta

sql ntext 替换存储过程
[SQL]代码view source print?01create procedure replace_ntext?????????? 02??@table_name??? nvarchar(100),?? --目标表名?????? 03??@field_name??? nvarchar(100),?? --目标字段名?????? 04??@where_str??????? nvarchar(1000),?? --该表主键字段名? 如id=1????? 05??@old??? nvarchar(1000),??????? --需要替换的字符串?????? 06??@new??? nvarchar(1000)???????? --替换后的字符串????????? 07as?????08begin??09?????10declare @SqlStr nvarchar(4000)???? 11????set @SqlStr = 'declare @pos int, @len int, @count int? set @count=0? set @len=len('''+@old+''') '12????set @SqlStr = @SqlStr + ' select @pos = patINDEX(''%'+@old+'%'',['+@field_name+']) - 1'+' from ['+@table_name+'] where '+ @where_str 13????set @SqlStr = @SqlStr + ' while @pos>0 '?14????set @SqlStr = @SqlStr + ' begin'???15????set @SqlStr = @SqlStr + ' declare @ptrval binary(16)'??????16????set @SqlStr = @SqlStr + ' SELECT? @ptrval? =? TEXTPTR(['+@field_name+'])?? from ['+@table_name+'] where '+? @where_str 17????set @SqlStr = @SqlStr + ' UPDATETEXT ['+@table_name+'].['+@field_name+'] @ptrval? @pos? @len '''+ @new + ''''18????set @SqlStr = @SqlStr + ' select @pos = patINDEX(''%'+@old+'%'',['+@field_name+']) - 1'+' from ['+@table_name+'] where '+ @where_str 19????set @SqlStr = @SqlStr + ' set? @count=@count+1 '20????set @SqlStr = @SqlStr + ' end '21????set @SqlStr = @SqlStr + ' select @count'22??????--print @SqlStr 23????????execute sp_executesql?? @SqlStr??????????? 24end

热点排行