>  기사  >  데이터 베이스  >  sql ntext 替换存储过程

sql ntext 替换存储过程

WBOY
WBOY원래의
2016-06-07 14:55:011070검색

sql server 数据库 ntext 字段 的替换存储过程 sqlserver数据库 ntext字段 的替换存储过程 create procedure replace_ntext @table_name nvarchar(100), --目标表名 @field_name nvarchar(100), --目标字段名 @where_str nvarchar(1000), --该表主键字段名 如

sql server 数据库 ntext 字段 的替换存储过程   sqlserver数据库 ntext字段 的替换存储过程
create procedure replace_ntext          
  @table_name    nvarchar(100),   --目标表名      
  @field_name    nvarchar(100),   --目标字段名      
  @where_str        nvarchar(1000),   --该表主键字段名  如id=1     
  @old    nvarchar(1000),        --需要替换的字符串      
  @new    nvarchar(1000)         --替换后的字符串         
as     
begin  
   
declare @SqlStr nvarchar(4000)    
	set @SqlStr = 'declare @pos int, @len int, @count int  set @count=0  set @len=len('''+@old+''') '
	set @SqlStr = @SqlStr + ' select @pos = patINDEX(''%'+@old+'%'',['+@field_name+']) - 1'+' from ['+@table_name+'] where '+ @where_str
	set @SqlStr = @SqlStr + ' while @pos>0 ' 
	set @SqlStr = @SqlStr + ' begin'   
	set @SqlStr = @SqlStr + ' declare @ptrval binary(16)'      
	set @SqlStr = @SqlStr + ' SELECT  @ptrval  =  TEXTPTR(['+@field_name+'])   from ['+@table_name+'] where '+  @where_str
	set @SqlStr = @SqlStr + ' UPDATETEXT ['+@table_name+'].['+@field_name+'] @ptrval  @pos  @len '''+ @new + ''''
	set @SqlStr = @SqlStr + ' select @pos = patINDEX(''%'+@old+'%'',['+@field_name+']) - 1'+' from ['+@table_name+'] where '+ @where_str
	set @SqlStr = @SqlStr + ' set  @count=@count+1 '
	set @SqlStr = @SqlStr + ' end '
	set @SqlStr = @SqlStr + ' select @count'
      --print @SqlStr
        execute sp_executesql   @SqlStr           
end    



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:消除sql2000里的重复数据다음 기사:mysql导出csv