SqlServer 中修改ntext,text字段的值

--定义替换的字符串
declare @s_str varchar(8000),@d_str varchar(8000),@id varchar(3)
select @id='6' [color=green]--要替换的记录id [/color]
,@s_str='ItemName' [color=green] --要替换的字符串[/color]
,@d_str='itemName' [color=green]--替换成的字符串 [/color]


--因为只能用patindex,所以对于搜索字符串做处理
set @s_str='%'+@s_str+'%'


[color=darkred]while @id<15 --当需要循环时 需要加上这三句 此例是循环6-15 之间所有记录
begin
set @id=@id+1[/color]
--字符串替换处理
declare @p varbinary(16)
,@p1 int,@p2 int
,@rplen int,@step int,@len int

select @p=textptr(xmlData) [color=green]--ntext字段的名称 用textptr函数返回[/color]
,@rplen=len(@s_str)-2 [color=green]--要替换的长度 此例中为 8 (“-2”去掉两个%的位置)[/color]
,@step=len(@d_str)
,@p1=patindex(@s_str,xmlData) [color=green]--要替换数据在ntext字段中的起始位置[/color]
,@len=datalength(xmlData) --ntext字段的长度
,@p2=0 [color=green]--要替换的起始列 (此处为0 表示在开始位置插入字符 )[/color]
from op_xmlData where projSerialId=@id [color=indigo] --{ op_xmlData }需要替换成数据库名 { projSerialId }需要替换[/color]

while @p1>0
begin
set @p2=@p1+@p2-1 [color=blue]--[ @p2=@p1+@p2-1] 不需要修改 功能未知[/color]
updatetext op_xmlData.xmlData @p @p2 @rplen @d_str [color=indigo] -- {op_xmlData.xmlData }需要替换[/color]
select @p2=@p2+1,@p1=patindex(@s_str,substring(xmlData,@p2+1,@len)) [color=blue]-- [ @p2=@p2+1 ] 不需要修改 功能未知 [/color] [color=indigo]{xmlData}需要替换成ntext类型的字段[/color]
from op_xmlData where projSerialId=@id [color=indigo]--{ op_xmlData }需要替换成数据库名 { projSerialId }替换成数据库的字段[/color]
end
[color=darkred]end --循环时需要添加这句[/color]

select substring(xmlData,patindex('%ItemName%',xmlData)-1,16) as p from op_xmlData where projSerialId=6
[color=green] --查看一下修改后的信息[/color]


---------------关于开关自增类型的id----------------------


SET IDENTITY_INSERT [OP_J_Projects] ON
insert into OP_J_Projects (Id,projectCode,projectName) values (206,'2009','123')
SET IDENTITY_INSERT [OP_J_Projects] OFF
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值