我想使用Management Studio对某些sql数据运行查找和替换查询。我基本上想要删除任何内容中的免费字。
我尝试过运行此查询;
UPDATE Table_1
SET ContentDetails = REPLACE(ContentDetails, 'FREE', '')
WHERE (ContentDetails LIKE '%FREE%')
但是我得到一个错误,说数据类型文本对于替换函数的参数1无效。
答案 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)
。它与ntext
和image
一起是当前的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%'