UPDATE cgxt
SET content = REPLACE(CAST(content AS varchar(8000)), '../../pic', '/pic')
WHERE (CAST(content AS varchar(8000)) LIKE '%../pic%')
SET content = REPLACE(CAST(content AS varchar(8000)), '../../pic', '/pic')
WHERE (CAST(content AS varchar(8000)) LIKE '%../pic%')
update cgxt set content = replace(content, '../../pic', '/pic')
SET context = REPLACE(CAST(context AS varchar(8000)), '../../pic', '/pic')
WHERE (CAST(context AS varchar(8000)) LIKE '%../pic%') /*
(所影响的行数为 0 行)
*/
不知道你的cgxt表的content字段是定义的什么.
先试试下面的语句能执行吗?declare @cgxt table(content text,ID int identity(1,1))Insert Into @cgxt(content) Values('../../pic/1')
Insert Into @cgxt(content) Values('../../pic/2')
Insert Into @cgxt(content) Values('../../pic/3')
Insert Into @cgxt(content) Values('../../pic/4')--Select * From @cgxtUPDATE @cgxt
SET content = REPLACE(CAST(content AS varchar(8000)), '../../pic', '/pic')
WHERE (content LIKE '%../pic%') Select * From @cgxt
去掉where也不行,还是一样的错误,会不会是记录多的原因啊~
如果这个样就能执行
UPDATE cgxt
SET content = REPLACE(CAST(content AS varchar(8000)), '../../pic', '/pic')
WHERE (content LIKE '%../pic%') and (id<300)
如果给id在多点的值就不行了,比如是id<500就不行
这个错误目前好像没有有效的解决方法。
2、像这种对于要修改text,ntext,image字段的操作,最好是用writetext或updatetext来进行。
而不是用update.同时不要记入日志(如果你确实需要记入日志的话,可以加入with log)。我也是从BOL上看来的,理解有误的地方,还请见谅。