sql ntext 替换存储过程

[SQL]代码
01 create 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)         --替换后的字符串         
07 as     
08 begin  
09      
10 declare @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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值