數(shù)據(jù)庫經(jīng)常會(huì)遇到需要把一些內(nèi)容白批量替換的問題,有時(shí)是因?yàn)榇鏀?shù)據(jù)時(shí)沒有編碼,有時(shí)是因?yàn)橛行┎涣嫉男畔?,要直接替換。
整理了下如何用
SQL語句來替換:
替換指定列內(nèi)容語句
update [t_test] set [detail] = REPLACE([detail],'打到XXX','新字符串')
注意,這個(gè)語句是不能替換
ntext的,除了
ntext類型的字符類型是可以全部替換
如果要替換
ntext類型字段是需要進(jìn)行類型轉(zhuǎn)換
update [t_test] set [detail] = replace(convert(varchar(4000), [detail]),'打到XXX','新字符串') where id<4
寫一小段SQL來執(zhí)行完成整個(gè)數(shù)據(jù)表的替換
- SQL code復(fù)制代碼
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 編輯過