查找并替换LIKE sql数据

时间:2009-09-25 11:47:34

标签: sql sql-server

我想使用Management Studio对某些sql数据运行查找和替换查询。我基本上想要删除任何内容中的免费字。

我尝试过运行此查询;

UPDATE    Table_1
SET              ContentDetails = REPLACE(ContentDetails, 'FREE', '')
WHERE     (ContentDetails LIKE '%FREE%')

但是我得到一个错误,说数据类型文本对于替换函数的参数1无效。

3 个答案:

答案 0 :(得分:5)

由于您有text列,因此您需要使用updatetext,这最多是痛苦的。但是,您可以将contentdetails投射为varchar(max),并且您将成为桃子。

update table_1
set contentdetails = replace(cast(contentdetails as varchar(max)), 'FREE', '')
where contentdetails like '%FREE%'

此外,我强烈建议您考虑将该列从text转换为varchar(max)。它与ntextimage一起是当前的deprecated数据类型,将在SQL Server的未来某个时候删除。

答案 1 :(得分:1)

尝试

UPDATE Table_1
SET    ContentDetails = REPLACE(CAST(ContentDetails as VARCHAR), 'FREE', '')
WHERE  (ContentDetails LIKE '%FREE%')

尽管它可能会将数据删除的值超出VARCHAR中的值。

答案 2 :(得分:0)

因评论而更新

我认为您需要做的就是将您的ContentDetails字段转换为具有字段长度的varchar,即

UPDATE Table_1
SET ContentDetails = REPLACE(CAST(ContentDetails as VARCHAR(100)), 'FREE', '')
WHERE ContentDetails LIKE '%FREE%'