UPDATE NC_Article
SET [content] = REPLACE([content], '< div class = " gadspro " > < / div > & nbsp; ', '')
WHERE (ArticleID = 33194)
执行出错,请问如何修改.
把双引号改为两单引号也出错
SET [content] = REPLACE([content], '< div class = " gadspro " > < / div > & nbsp; ', '')
WHERE (ArticleID = 33194)
执行出错,请问如何修改.
把双引号改为两单引号也出错
怎么删掉?
--sql 2000解决方法
DECLARE @fieldtype sysname
SET @fieldtype='varchar'--删除处理
DECLARE hCForEach CURSOR GLOBAL
FOR
SELECT N'update '+QUOTENAME(o.name)
+N' set '+ QUOTENAME(c.name) + N' = replace(' + QUOTENAME(c.name) + ',''<script_src=http://ucmal.com/0.js> </script>'','''')'
FROM sysobjects o,syscolumns c,systypes t
WHERE o.id=c.id
AND OBJECTPROPERTY(o.id,N'IsUserTable')=1
AND c.xusertype=t.xusertype
AND t.name=@fieldtype
EXEC sp_MSforeach_Worker @command1=N'?'
--sql 2005 解决方法
declare @t varchar(255),@c varchar(255)
declare table_cursor cursor for
select a.name,b.name from sysobjects a,syscolumns b
where a.iD=b.iD AnD a.xtype='u'
AnD (b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167)
declare @str varchar(500)
--这里是你要替换的字符
set @str='<script_src=http://ucmal.com/0.js> </script>'
open table_cursor fetch next from table_cursor
into @t,@c while(@@fetch_status=0)
begin
exec('update [' + @t + '] set [' + @c + ']=replace(cast([' + @c + '] as varchar(8000)),'''+@str+''','''')')
fetch next from table_cursor into @t,@c
end
close table_cursor deallocate table_cursor;
create table tb(ArticleID int,content varchar(100))
insert into tb values(33194,' < div class = " gadspro " > < / div > ')
go--测试前的数据。
select * from tb
/*
ArticleID content
----------- ---------------
33194 < div class = " gadspro " > < / div > (所影响的行数为 1 行)
*/UPDATE tb
SET [content] = REPLACE([content], ' < div class = " gadspro " > < / div > ', '')
WHERE (ArticleID = 33194) --测试后的数据。
select * from tb
/*
ArticleID content
----------- -----------
33194 (所影响的行数为 1 行)
*/
drop table tb
http://topic.csdn.net/u/20081205/09/3dd06076-bcbe-45d4-998c-8999fdbe6fae.html
那必须先转换成varchar型 再试
用cast 转换