扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
没办法,不可能一个库一下全换了,没那样的操作。
成都创新互联-专业网站定制、快速模板网站建设、高性价比普宁网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式普宁网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖普宁地区。费用合理售后完善,10年实体公司更值得信赖。
但你可以这样操作。
1 检查每张表的每个字段,查每个字符型的,字段,是否有可能有要修改的数据。这个的手工一个一个的确定下来。
2 update 表名 set 字段1 = replace (字段1,'原网址','新网址' ) .
这样一个一个的替的话,也快,
REPLACE
用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。
语法
REPLACE ( 'string_expression1' , 'string_expression2' , 'string_expression3' )
参数
'string_expression1'
待搜索的字符串表达式。string_expression1 可以是字符数据或二进制数据。
'string_expression2'
待查找的字符串表达式。string_expression2 可以是字符数据或二进制数据。
'string_expression3'
替换用的字符串表达式。string_expression3 可以是字符数据或二进制数据。
返回类型
如果 string_expression(1、2 或 3)是支持的字符数据类型之一,则返回字符数据。如果 string_expression(1、2 或 3)是支持的 binary 数据类型之一,则返回二进制数据。
示例
下例用 xxx 替换 abcdefghi 中的字符串 cde。
SELECT REPLACE('abcdefghicde','cde','xxx')
GO
下面是结果集:
------------
abxxxfghixxx
(1 row(s) affected)
IF OBJECT_ID('tb2') IS NOT NULL DROP TABLE tb2
GO
CREATE TABLE tb2
(
Id int ,
A varchar(10),
B varchar(10),
C varchar(10),
D varchar(10),
E varchar(10),
F varchar(10),
G varchar(10),
CONSTRAINT PK_TB PRIMARY KEY (id)
)
GO
INSERT TB2
select '1','F1','F2','F3','F4','F5','F6','F7' union all
select '2','A1','B1','C1','D1','E1','G1','H1' union all
select '3','A2','B2','C2','D2','E2','G2','H2' union all
select '4','A3','B3','C3','D3','E3','G3','H3' union all
select '5','A4','B4','C4','D4','E4','G4','H4' union all
select '6','A5','B5','C5','D5','E5','G5','H5'
IF OBJECT_ID('tb3') IS NOT NULL DROP TABLE tb3
GO
CREATE TABLE tb3
(
Id varchar(50) ,
CONSTRAINT PK_TB3 PRIMARY KEY (id)
)
GO
INSERT TB3
select tb2.A from tb2 where id=1 union all
select tb2.B from tb2 where id=1 union all
select tb2.C from tb2 where id=1 union all
select tb2.D from tb2 where id=1 union all
select tb2.E from tb2 where id=1 union all
select tb2.F from tb2 where id=1 union all
select tb2.G from tb2 where id=1
select * from tb2
select * from tb3
--核心部分
update tb3 set Id=replace(Id,'F','W')
select * from tb3
可能是在@Count为Null出现问题。另外,用replace的方法不太好。因为当@AdPozition和@AdType包含字符串"TOP"时,也会被替换掉。
建议改成:
SET @SQL=N'SELECT '+
CASE WHEN LEN(@Count) 0 THEN 'TOP ' + @Count ELSE '' END
+' * FROM NOP_ADS WHERE ADPOZITION='''+@AdPozition+''' AND ADTYPE='''+@AdType+''' ORDER BY ADPOZITION DESC, ADTYPE DESC,SHOWORDER DESC'
去掉IF和REPLACE语句。
update
[表名]
set
[字段名]=stuff([字段名],charindex('aaaa',[字段名],0),charindex('bbb',[字段名],0)-charindex('aaaa',[字段名],0)-4+7,'A'),
where
[字段名]
like
'%aaaa%bbb%'
就是用charindex取得'aaaa','bbb'的位置,计算需要替换字符串的长度,然后用stuff函数替换.
declare @b int
set @a = '123'
set @b = 123
cast(@a as int)--就是把@a转换为int类型的
cast(@b as varchar(20))--就是把@b转换为varchar类型的
declare @a varchar(20)
set @a = '12345(789)'
print left(@a, CHARINDEX ('(',@a,1)-1 )
--输出12345
sql="update Table set 字段=REPLACE ( 字段,'123' , ' ') where XXX条件"
把字段中123替换为空格
记得加条件
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流