最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

SQLServer中text或ntext字段内容替换方法

来源:动视网 责编:小采 时间:2020-11-09 13:41:43
文档

SQLServer中text或ntext字段内容替换方法

SQLServer中text或ntext字段内容替换方法:update 表名 set text类型字段名=replace(convert(varchar(8000),text类型字段名),'要替换的字符','替换成的值') 1.update ntext: (1)varchar和nvarchar类型是支持replace,所以如果你的text/ntext不超过8000/4000可以先转换成前面
推荐度:
导读SQLServer中text或ntext字段内容替换方法:update 表名 set text类型字段名=replace(convert(varchar(8000),text类型字段名),'要替换的字符','替换成的值') 1.update ntext: (1)varchar和nvarchar类型是支持replace,所以如果你的text/ntext不超过8000/4000可以先转换成前面


update 表名 set text类型字段名=replace(convert(varchar(8000),text类型字段名),'要替换的字符','替换成的值') 1.update ntext: (1)varchar和nvarchar类型是支持replace,所以如果你的text/ntext不超过8000/4000可以先转换成前面两种类型再使用replace。 u

  update 表名

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

  1.update ntext:

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

  update 表名

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

  update 表名

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

  (2)如果text/ntext超过8000/4000,看如下例子

  declare @pos int

  declare @len int

  declare @str nvarchar(4000)

  declare @des nvarchar(4000)

  declare @count int

  set @des ='

  set @len=len(@des)

  set @str= ''--要替换的字符

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

  WHILE 1=1

  BEGIN

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

  from 表名

  where 条件

  IF @pos>=0

  begin

  DECLARE @ptrval binary(16)

  SELECT @ptrval = TEXTPTR(字段名)

  from 表名

  where 条件

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

  set @count=@count+1

  end

  ELSE

  break;

  END

  select @count

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

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

  Alter Table tbl Add newcol ntext null

  go

  update tbl set newcol=col

  go

  EXEC sp_rename 'tbl.col', 'oldcol', 'COLUMN'

  go

  EXEC sp_rename 'tbl.newcol', 'col', 'COLUMN'

  go

  alter table tbl drop column oldcol

  go

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

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

  PRINT 'Refreshing all views...'

  DECLARE @vName sysname

  DECLARE refresh_cursor CURSOR FOR

  SELECT Name from sysobjects WHERE xtype = 'V'

  order by crdate

  FOR READ ONLY

  OPEN refresh_cursor

  FETCH NEXT FROM refresh_cursor

  INTO @vName

  WHILE @@FETCH_STATUS <> -1

  BEGIN

  exec sp_refreshview @vName

  PRINT '视图' + @vName + ' refreshed'

  FETCH NEXT FROM refresh_cursor

  INTO @vName

  END

  CLOSE refresh_cursor

  DEALLOCATE refresh_cursor

文档

SQLServer中text或ntext字段内容替换方法

SQLServer中text或ntext字段内容替换方法:update 表名 set text类型字段名=replace(convert(varchar(8000),text类型字段名),'要替换的字符','替换成的值') 1.update ntext: (1)varchar和nvarchar类型是支持replace,所以如果你的text/ntext不超过8000/4000可以先转换成前面
推荐度:
标签: 内容 方法 sql
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top