什么是最好的方法来替换所有的& lt<& lt<在给定的数据库列?基本上执行s /& lt [^;] /& lt; / gi 笔记:
>必须在 MS SQL Server 2000工作
>必须是可重复的(而不是最终得到&’;;;;;;;;)
>必须在 MS SQL Server 2000工作
>必须是可重复的(而不是最终得到&’;;;;;;;;)
解决方法
一些黑客需要,但我们可以用LIKE,PATINDEX,LEFT AND RIGHT和良好的旧字符串连接来做到这一点.
create table test ( id int identity(1,1) not null,val varchar(25) not null ) insert into test values ('< <- ok,< <- nok') while 1 = 1 begin update test set val = left(val,patindex('%<[^;]%',val) - 1) + '<' + right(val,len(val) - patindex('%<[^;]%',val) - 2) from test where val like '%<[^;]%' IF @@ROWCOUNT = 0 BREAK end select * from test
更好的是,这是sql Server版本不可知,应该工作正常.