數據庫經常會遇到需要把一些內容白批量替換的問題,有時是因為存數據時沒有編碼,有時是因為有些不良的信息,要直接替換。
整理了下如何用
SQL語句來替換:
替換指定列內容語句
update [t_test] set [detail] = REPLACE([detail],'打到XXX','新字符串')
注意,這個語句是不能替換
ntext的,除了
ntext類型的字符類型是可以全部替換
如果要替換
ntext類型字段是需要進行類型轉換
update [t_test] set [detail] = replace(convert(varchar(4000), [detail]),'打到XXX','新字符串') where id<4
寫一小段SQL來執行完成整個數據表的替換
- SQL code復制代碼
declare @ptr varbinary(16)
declare @artId int
declare @Position int,@len int
set @len = datalength('XXXA')
declare wux_Cursor scroll Cursor
for
select textptr([detail]),id from t_test
for read only
open wux_Cursor
fetch next from wux_Cursor into @ptr,@artId
while @@fetch_status=0
begin
select @Position=patindex('%打到XXX%',[detail]) from t_test where id=@artId
while @Position>0
begin
set @Position=@Position-1
updatetext [t_test].[detail] @ptr @Position @len 'XXXA'
select @Position=patindex('%打到XXX%',detail) from t_test where id=@artId
end
fetch next from wux_Cursor into @ptr,@artId
end
close wux_cursor
deallocate wux_cursor
go
該文章在 2011/3/3 20:41:40 編輯過