CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛

sqlserver 中ntext字段的批量替换(updatetext的用法)

一、问题描述:
1。在Sql Server 中,ntext/text/image 字段不允许应用replace函数替换内容;
2。通过convert字段转换,可以把ntext字段转换为varchar(8000),然后用Relpace函数替换,不过,此方法,对于字段长度大于8000的ntext字段无效。
二、问题解决
整理通用存储过程,代码如下:

实现代码如下:
CREATE procedure [dbo].[Proc_UpdateNTextField]
@TargetTable nvarchar(1000), –目标表名
@TargetField nvarchar(1000), –目标字段名
@PKField nvarchar(1000), –该表主键字段名
@otxt nvarchar(1000),         –需要替换的字符串
@ntxt nvarchar(1000)         –替换后的字符串
as
begin
declare @SqlStr nvarchar(4000)
set @SqlStr = ‘ declare @txtlen int ‘
set @SqlStr = @SqlStr + ‘ set @txtlen = len(”’ + @otxt + ”’) ‘
set @SqlStr = @SqlStr + ‘ declare @pos int ‘
set @SqlStr = @SqlStr + ‘ set @pos = 0 ‘
set @SqlStr = @SqlStr + ‘declare curs cursor local fast_forward for select ‘
set @SqlStr = @SqlStr + @PKField + ‘ , textptr(‘ + @TargetField +’) from ‘ + @TargetTable +’ where ‘ + @TargetField + ‘ like ”%’ + @otxt +’%”’
set @SqlStr = @SqlStr + ‘ declare @ptr binary(16) ‘
set @SqlStr = @SqlStr + ‘ declare @id char(32) ‘
set @SqlStr = @SqlStr + ‘ open curs ‘
set @SqlStr = @SqlStr + ‘ fetch next from curs into @id, @ptr ‘
set @SqlStr = @SqlStr + ‘ while @@fetch_status = 0 ‘
set @SqlStr = @SqlStr + ‘ begin ‘
set @SqlStr = @SqlStr + ‘ select @pos= patindex(”%’ + @otxt + ‘%”,ProductDesc) from ProductTemp where [email protected]/* */ ‘
set @SqlStr = @SqlStr + ‘ while @pos>0 ‘
set @SqlStr = @SqlStr + ‘ begin ‘

set @SqlStr = @SqlStr + ‘ set @[email protected]/* */ ‘
set @SqlStr = @SqlStr + ‘ updatetext ‘ + @TargetTable + ‘.’ [email protected]/* */ + ‘ @ptr @pos @txtlen ”’ + @ntxt + ”’ ‘
set @SqlStr = @SqlStr + ‘ select @pos= patindex(”%’ + @otxt + ‘%”,ProductDesc) from ProductTemp where [email protected]/* */ ‘
set @SqlStr = @SqlStr + ‘ end ‘
set @SqlStr = @SqlStr + ‘ fetch next from curs into @id, @ptr ‘
set @SqlStr = @SqlStr + ‘ end ‘
set @SqlStr = @SqlStr + ‘ close curs ‘
set @SqlStr = @SqlStr + ‘ deallocate curs ‘
EXECUTE sp_executesql @SqlStr
end

以上就是【sqlserver 中ntext字段的批量替换(updatetext的用法)】的全部内容了,欢迎留言评论进行交流!

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容