【发布时间】:2010-08-20 17:26:23
【问题描述】:
我在数据库 (SQL Server 2005) 中有一个列,其数据末尾带有“\0”。在 SQL Server 中查询时,此字符不可见,并且“似乎”不存在。当我查看我的 C# 代码时,字符就在那里。此字符导致我们的网站出现错误,我们需要将其从所有受影响的行中删除。
是否有我可以编写的 sql 查询来轻松地从所有受影响的记录中删除此字符?我可以获得所有受影响的记录,但我没有办法将记录更新为新值(没有“\0”)。
更新: 这似乎有效:
Select * from TABLE
where UNICODE(SUBSTRING(naughtyField, LEN(naughtyField), 1)) = 0
所以:
Update TABLE
SET naughtyField = SUBSTRING(naughtyField, 1, LEN(naughtyField) - 1)
where UNICODE(SUBSTRING(naughtyField, LEN(naughtyField), 1)) = 0
【问题讨论】:
-
那么,我该怎么做呢?威尔的回答不正确,但他的帮助使我找到了解决方案。
-
如果 Will 将他关于使用
SUBSTRING(naughtyfield, 1, LEN(naughtyfield) - 1)的评论移到他应该解决问题的答案中? -
是的......虽然你的答案更优雅,但我认为我不能仅仅为了这个“快速修复”而在 Prod 数据库上创建一个函数。文书工作太多。
标签: sql sql-server database sql-server-2005