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

sqlserver替换

发布时间: 2022-07-25 23:59:12

1. sqlSERVER如何批次替换在列中不固定出现的第二个字符

先试一下这个(CCC和B表自己换一下)
select left(CCC, patindex('%金%金%',CCC))+ stuff(right(CCC,len(CCC)-patindex('%金%金%',CCC)),charindex('金',right(CCC,len(CCC)-patindex('%金%金%',CCC))),1,'铜') From B表 Where patindex('%金%金%',CCC)>0

如果能正常检索出结果,那就可以直接写
update B表 set CCC=(
left(CCC, patindex('%金%金%',CCC))+ stuff(right(CCC,len(CCC)-patindex('%金%
金%',CCC)),charindex('金',right(CCC,len(CCC)-patindex('%金%金%',CCC))),1,'铜
')) Where patindex('%金%金%',CCC)>0

2. 如何替换SQL Server数据库内容

在告诉大家如何替换数据内容之前,我建议大家先了解一下SQL Server数据库的数据存储类型:在使用iwms系统的过程中,我们会经常遇到数据内容的替换操作。在告诉大家如何替换数据内容之前,我建议大家先了解一下SQLServer数据库的数据存储类型:SQLServer数据类型:以上是数据库的基础知识,是做网站的朋友都应该知道的内容(无论你使用什么cms),所以建议大家都耐心看一下。数据替换一般都发生在字符串数据字段中,除了ntext类型字段以外的其他字符串数据字段都可以使用以下的sql语句进行替换:update [swf_Upload] set [Dir] = replace([Dir],'200901/14','200901/15')update [swf_Content] set [Description] =replace([Description],'200901/14','200901/15')update [swf_Content_01] set [content] = replace(convert(varchar(4000), [content]),'200901/14','200901/15') UPDATE [数据表名] SET [字段名] = REPLACE([字段名],'老字符串','新字符串') 比如,替换iwms文章数据表(iwms_news)中的标题字段(title)的部分内容,我们应该这么写:UPDATE [iwms_news] SET [title] = REPLACE([title],'老字符串','新字符串') 上面的sql语句在iwms后台的sql执行里面可以直接执行,基本上可以搞定所有的替换操作,但是由于ntext数据长度的原因,这一方法对ntext类型字段无效。那我们该用什么方法替换ntext类型字段的内容呢?方法有两种:一是类型转换,将ntext类型转换为varchar类型,然后再用replace。适合于单页内容最大长度<4000的文章。update [数据表名] set [字段名] = replace(convert(varchar(4000), [字段名]),'老字符串','新字符串') 比如,替换iwms文章数据表(iwms_news)中的标题字段(content,ntext类型字段)的部分内容,我们应该这么写:update iwms_news set [content] = replace(convert(varchar(4000),[content]),'老字符串','新字符串')二是SQLServer存储过程declare @ptr varbinary(16) declare @artId int declare @Position int,@len int set @len = datalength('老字符串') declare wux_Cursor scroll Cursorforselect textptr([字段名]),[key字段名] from [数据表名] for read only open wux_Cursor fetch next from wux_Cursor into @ptr,@artId while @@fetch_status=0beginselect @Position=patindex('%老字符串%',[字段名]) from [数据表名] where [key字段名]=@artId while @Position>0beginset @Position=@Position-1 updatetext [数据表名].[字段名] @ptr @Position @len '新字符串' select @Position=patindex('%老字符串%',[字段名]) from [数据表名] where [key字段名]=@artIdendfetch next from wux_Cursor into @ptr,@artIdendclose wux_cursor deallocate wux_cursor go比如,替换iwms文章数据表(iwms_news)中的标题字段(content,ntext类型字段)的部分内容,我们应该这么写declare @ptr varbinary(16) declare @artId int declare @Position int,@len int set @len = datalength('老字符串')

3. 如何替换sql server里所有表内的字段内容为其他内容

些个
循环语句
,先把所有的表名select
出来;把表名设置成变量,通过while
语句循环.相当简单的.

4. 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

5. 求助!SQLServer数据库 内容关键字替换 语句

sql函数中就有replace函数可以使用

也可以使用字符串函数 处理charindex,substring等

6. sqlserver查找所有表中是否包含字符并替换

将text替换成你要查找的内容
select name
from sysobjects o, syscomments s
where o.id = s.id
and text like '%text%'
and o.xtype = 'P'

热点内容
python实现svm 发布:2025-01-26 15:24:25 浏览:381
易语言写ip全局代理服务器 发布:2025-01-26 15:04:01 浏览:668
gm命令在哪个文件夹 发布:2025-01-26 15:03:12 浏览:307
javadate类 发布:2025-01-26 14:58:54 浏览:352
领航s1配置怎么样 发布:2025-01-26 09:58:10 浏览:763
公司局域网搭建服务器搭建 发布:2025-01-26 09:16:56 浏览:433
android裁剪圆形图片 发布:2025-01-26 09:05:56 浏览:411
小贷源码 发布:2025-01-26 08:20:58 浏览:536
更换电脑名登录服务器 发布:2025-01-26 07:56:52 浏览:240
后台phpjava 发布:2025-01-26 07:12:34 浏览:657