SqlServer 中修改ntext,text字段的值

--定义替换的字符串  
  declare   @s_str   varchar(8000),@d_str   varchar(8000),@id   varchar(3)  
  select   @id='6' --要替换的记录id    
  ,@s_str='ItemName'  --要替换的字符串  
  ,@d_str='itemName' --替换成的字符串  
   
   
  --因为只能用patindex,所以对于搜索字符串做处理  
  set   @s_str='%'+@s_str+'%'  
   

while   @id<15     --当需要循环时 需要加上这三句  此例是循环6-15 之间所有记录
begin  
set  @id=@id+1

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

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

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






---------------关于开关自增类型的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

你可能感兴趣的:(J#)