--定义替换的字符串
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
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