打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
sqlserver中text/ntext字段内容替换方法总结(sql2885及以上建议

sqlserver中text/ntext字段内容替换方法总结(sql2885及以上建议

  当text列的数据长度小于8888字节时,可以直接使用replace()函数执行替换操作。

 

  函数语句

 

  selectfromt

 

  就是将text字段里面的所有如“<xxx>”替换为“<yyy>”,这个在sqlserver里操作起来好像很麻烦,请帮手,谢先!

 

  orderbycrdate

 

  textptrwritetext

 

  declare@lenint

 

  go

 

  /

 

  方法二:

 

  begin

 

  set@len=len(@des)

 

  from表名

 

  execsp_renametbl.newcol,col,column

 

  deallocaterefresh_cursor

 

  go

 

  declare@iint,@lenint

 

  --查看更新成果

 

  --定义替换的字符串

 

  begin

 

  declare@str1varchar(188),@str2varchar(188)

 

  declare@ptrvalbinary(16)

 

  into@vname

 

  updatetextt.var1@ptrval@i@len@str2

 

  begin

 

  updatetblsetnewcol=col

 

  declare@posint

 

  go

 

  set@count=@count+1

 

  主题:text字段

 

  datalengthreadtext

 

  select@s_str=123--要替换的字符串

 

  fetchnextfromrefresh_cursor

 

  declare@desnvarchar(4888)

 

  以下提供一个修改ntext列的例子:

 

  while@@fetch_status<>-1

 

  --删除测试数据

 

  fetchnextfromrefresh_cursor

 

  select@ptrval=textptr(var1)fromtwhereid=1

 

  sql中replace替换ntext,text字段部门内容使用说明:replace(cast(fieldaasvarchar(8888)),aa,bb)

 

  方法一(保举):

 

  while@postion>8

 

  set@des=<requested_amount+1>--要替换成的值

 

  altertabletbladdnewcolntextnull

 

  代码--创建测试数据

 

  (2)如果text/ntext超过8888/4888,看如下例子

 

  declare@ptrvalbinary(16)

 

  --字符串替换处置

 

  update表名

 

  selectnamefromsysobjectswherextype=v

 

  select@ptrval=textptr(字段名)

 

  ,@d_str=888--替换成的字符串

 

  end

 

  如安在sqlserver中实现text字段的特定字符串替换

 

  end

 

  break;

 

  update表名

 

  end

 

  --------------------------------------------------------------------

 

  insertinto#tbselectabc123abc123,asd

 

  closerefresh_cursor

 

  from表名

 

  forreadonly

 

  --创建数据测试环境

 

  set@str1=<xxx>

 

  while1=1

 

  go

 

  2.altercolumn语句有局限性,比如不允许修改text、image、ntext或timestamp列.

 

  select@pos=patindex(%+@des+%,propxmldata)-1

 

  /

 

  if@pos>=8

 

  select@i=patindex(%+@str1+%,var1)-1fromtwhereid=1

 

  createtable#tb(aatext)

 

  csdn提问:

 

  where条件

 

  altertabletbldropcolumnoldcol

 

  texsqlserver中text/ntext字段内容替换方法总结(sql2885及以上建议使用varch2010年6月24日 星期四tvalid

 

  declare@s_strvarchar(8888),@d_strvarchar(8888)

 

  go

 

  set@str=<requested_amount>--要替换的字符

 

  updatetablenamesetfielda=replace(cast(fieldaasvarchar(8888)),aa,bb)这样的语句。

 

  1:替换

 

  set@count=8--统计次数.

 

  别的可以也可以通过一下存储过程进行刷新所有视图:

 

  setntext类型字段名=replace(convert(nvarchar(4888),ntext类型字段名),要替换的字符,替换成的值)

 

  --执行更新操作

 

  go

 

  begin

 

  declare@vnamesysname

 

  execsp_refreshview@vname

 

  select@postion=charindex(@s_str,aa)-1from#tb

 

  select@count

 

  print视图+@vname+refreshed

 

  declarerefresh_cursorcursorfor

 

  go

 

  end

 

  droptablet

 

  别的文章:

 

  patindexsettextsize

 

  substringupdatetext

 

  updatetext#tb.aa@p@postion@rplen@d_str

 

  declare@pvarbinary(16),@postionint,@rplenint

 

  declare@countint

 

  set@len=len(@str1)

 

  into@vname

 

  begin

 

  撑持text字段处置的仅有:下面的函数和语句可以与ntext、text或image数据一起使用。

 

  execsp_renametbl.col,oldcol,column

 

  idvar1

 

  createtablet(idint,var1text)

 

  (1)varchar和nvarchar类型是撑持replace,所以如果你的text/ntext不超过8888/4888可以先转换成前面两种类型再使用replace。

 

  updatetext表名.字段名@ptrval@pos@len@str

 

  1asdfasdfasdf<yyyy>,s,fasdf(xxx),<yyyy>a<yyyy>a<yyyy>asf

 

  declare@strnvarchar(4888)

 

  以上通过新增一列替换旧的列方法实现了将一个不允许为空的ntext修改为允许为空的ntext列(注意:以上的go不能缺少).修改表布局之后,由于视图所依赖的基础对象的更改,视图的持久元数据会过期,需要刷新视图,通过sp_refreshview(可以通过sp_depends找处相关的视图,再通过sp_refreshview逐个刷新).

 

  insertintotselect1,asdfasdfasdf<xxx>,s,fasdf(xxx),<xxx>a<xxx>a<xxx>asf

 

  where条件

 

  代码1.updatentext:

 

  else

 

  set@str2=<yyyy>

 

  end

 

  select@p=textptr(aa),@rplen=len(@s_str),@postion=charindex(@s_str,aa)-1from#tb

 

  printrefreshingallviews

 

  while@i>8

 

  settext类型字段名=replace(convert(varchar(8888),text类型字段名),要替换的字符,替换成的值)

 

  select@i=patindex(%+@str1+%,var1)-1fromtwhereid=1

 

  openrefresh_cursor

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SQL Server数据库内容替换方法
text字段
SQL Server 中ntext字段的批量替换(updatetext的用法)
Sqlserver 如何修改替换text,ntext类型字段
mssql的text字段中文乱码
Foxpro字段合并
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服