当前位置:首页 » 编程语言 » sqlserver替换字符串

sqlserver替换字符串

发布时间: 2022-05-19 22:35:11

‘壹’ sqlserver数据库更改字符串的值,假设我有一个字段name,值为:

先把所有‘替换成’‘’,再把‘’‘,’‘’替换成‘’,‘’
update 表名 set name =replace(name,‘'’,‘'''’)
update 表名 set name =replace(name,‘''','''’,‘'',''’)

‘贰’ sql怎么批量替换字段里的字符串的

方法一:varchar和nvarchar类型是支持replace,所以如果你的text不超过8000可以先转换成前面两种类型再使用replace 替换 text ntext 数据类型字段的语句 。
update 表名 set 字段名=replace(cast(与前面一样的字段名 as varchar(8000)) ,'原本内容','想要替换成什么')方法二:
update [表名] set 字段名 = replace(与前面一样的字段名,'原本内容','想要替换成什么')

‘叁’ sqlserver 中ntext字段的批量替换(updatetext的用法)

一、问题描述:
1。在Sql
Server
中,ntext/text/image
字段不允许应用replace函数替换内容;
2。通过convert字段转换,可以把ntext字段转换为varchar(8000),然后用Relpace函数替换,不过,此方法,对于字段长度大于8000的ntext字段无效。
二、问题解决
整理通用存储过程,代码如下:
复制代码
代码如下:
CREATE
procere
[dbo].[Proc_UpdateNTextField]
@TargetTable
nvarchar(1000),
--目标表名
@TargetField
nvarchar(1000),
--目标字段名
@PKField
nvarchar(1000),
--该表主键字段名
@otxt
nvarchar(1000),
--需要替换的字符串
@ntxt
nvarchar(1000)
--替换后的字符串
as
begin
declare
@SqlStr
nvarchar(4000)
set
@SqlStr
=
'
declare
@txtlen
int
'
set
@SqlStr
=
@SqlStr
+
'
set
@txtlen
=
len('''
+
@otxt
+
''')
'
set
@SqlStr
=
@SqlStr
+
'
declare
@pos
int
'
set
@SqlStr
=
@SqlStr
+
'
set
@pos
=
0
'
set
@SqlStr
=
@SqlStr
+
'declare
curs
cursor
local
fast_forward
for
select
'
set
@SqlStr
=
@SqlStr
+
@PKField
+
'
,
textptr('
+
@TargetField
+')
from
'
+
@TargetTable
+'
where
'
+
@TargetField
+
'
like
''%'
+
@otxt
+'%'''
set
@SqlStr
=
@SqlStr
+
'
declare
@ptr
binary(16)
'
set
@SqlStr
=
@SqlStr
+
'
declare
@id
char(32)
'
set
@SqlStr
=
@SqlStr
+
'
open
curs
'
set
@SqlStr
=
@SqlStr
+
'
fetch
next
from
curs
into
@id,
@ptr
'
set
@SqlStr
=
@SqlStr
+
'
while
@@fetch_status
=
0
'
set
@SqlStr
=
@SqlStr
+
'
begin
'
set
@SqlStr
=
@SqlStr
+
'
select
@pos=
patindex(''%'
+
@otxt
+
'%'',ProctDesc)
from
ProctTemp
where
ProctID=@id
'
set
@SqlStr
=
@SqlStr
+
'
while
@pos>0
'
set
@SqlStr
=
@SqlStr
+
'
begin
'
set
@SqlStr
=
@SqlStr
+
'
set
@pos=@pos-1
'
set
@SqlStr
=
@SqlStr
+
'
updatetext
'
+
@TargetTable
+
'.'
+@TargetField
+
'
@ptr
@pos
@txtlen
'''
+
@ntxt
+
'''
'
set
@SqlStr
=
@SqlStr
+
'
select
@pos=
patindex(''%'
+
@otxt
+
'%'',ProctDesc)
from
ProctTemp
where
ProctID=@id
'
set
@SqlStr
=
@SqlStr
+
'
end
'
set
@SqlStr
=
@SqlStr
+
'
fetch
next
from
curs
into
@id,
@ptr
'
set
@SqlStr
=
@SqlStr
+
'
end
'
set
@SqlStr
=
@SqlStr
+
'
close
curs
'
set
@SqlStr
=
@SqlStr
+
'
deallocate
curs
'
EXECUTE
sp_executesql
@SqlStr
end

‘肆’ 如何替换整个SQL数据库中的字符

我也遇到过这样的问题。sql
server替换ntext字段,网上有很多存储过程,不过我试过,都有错误,不能执行,可能环境不一样吧。
我的解决办法是,自己写了一个程序,就是用datareader从数据库中一条一条读记录,如果记录中包含特定字符串,就把它替换掉然后更新会数据库。由于数据量大,可以定义一个int型变量,每5000条提示一下,可以知道更新进度。
听说用dataset可以批量更新多条记录,这个没用过,不太熟悉,楼主觉得我的方法不行,可以找找dataset的解决思路。

‘伍’ SQLServer如何删除字段中的某个字符串,或者替换为空格

sql="update Table set 字段=REPLACE ( 字段,'123' , ' ') where XXX条件"
把字段中123替换为空格

记得加条件

‘陆’ sql中如何批量替换字段里的字符串

update
[表名]
set
[字段名]=stuff([字段名],charindex('aaaa',[字段名],0),charindex('bbb',[字段名],0)-charindex('aaaa',[字段名],0)-4+7,'A'),
where
[字段名]
like
'%aaaa%bbb%'
就是用charindex取得'aaaa','bbb'的位置,计算需要替换字符串的长度,然后用stuff函数替换.

‘柒’ sql 替换某一位置字符

sql server 2005及以上版本可使用STUFF函数。

语法:

STUFF(character_expression,start,length,character_expression)

参数说明:

  • character_expression:一个字符数据表达式。character_expression可以是常量、变量,也可以是字符列或二进制数据列。

  • start:一个整数值,指定删除和插入的开始位置。如果start或length为负,则返回空字符串。如果start比第一个character_expression长,则返回空字符串。start可以是bigint类型。

  • length:一个整数,指定要删除的字符数。如果length比第一个character_expression长,则最多删除到最后一个character_expression中的最后一个字符。length可以是bigint类型。

返回类型

  • 如果character_expression是受支持的字符数据类型,则返回字符数据。如果character_expression是一个受支持的 binary 数据类型,则返回二进制数据。

注释

  • 如果开始位置或长度值是负数,或者如果开始位置大于第一个字符串的长度,将返回空字符串。如果要删除的长度大于第一个字符串的长度,将删除到第一个字符串中的第一个字符。

  • 如果结果值大于返回类型支持的最大值,则产生错误。

示例

  • 以下示例在第一个字符串abcdef中删除从第2个位置(字符b)开始的三个字符,然后在删除的起始位置插入第二个字符串,从而创建并返回一个字符串。

SELECTSTUFF('abcdef',2,3,'ijklmn');
GO
  • 下面是结果集:

---------
aijklmnef

(1 row(s) affected)


以上摘自:https://msdn.microsoft.com/zh-cn/library/ms188043(v=sql.105).aspx

‘捌’ 想把sqlserver数据库中某字段里的特定字符修改,可以用sql命令来做吗

update
class
set
studentNo=replace(convert(varchar(8000),bbb),'2006','2010')
where
条件
如果全部替换一列不用要后边的where
条件
运行上句之前必须备份数据库

热点内容
sql除法运算 发布:2025-02-14 06:30:43 浏览:534
如何在家部署一台服务器 发布:2025-02-14 06:22:04 浏览:433
u盘里文件夹是空的 发布:2025-02-14 06:13:22 浏览:803
安卓如何缩放图片尺寸 发布:2025-02-14 06:06:34 浏览:116
六年级简便算法题 发布:2025-02-14 05:53:02 浏览:8
脚本精灵要root吗 发布:2025-02-14 05:51:30 浏览:212
安卓手机如何录屏怎么去掉触摸显示 发布:2025-02-14 05:36:23 浏览:996
安卓系统新品推荐怎么关 发布:2025-02-14 05:35:44 浏览:888
虚拟存储器的基础是 发布:2025-02-14 05:32:24 浏览:516
androidstudio出错 发布:2025-02-14 05:32:14 浏览:305