我在数据库中有一列(SQL Server 2005),数据在最后有一个“\ 0”。在SQL Server中查询时,该字符不可见,也不“看起来”存在。当我查看我的C#代码时,角色就在那里。此人物在我们的网站上造成错误,我们需要将其从所有受影响的行中移除。Sql Server - 从数据中删除结束字符串字符“ 0”
是否有我可以写入的sql查询轻松地从受影响的所有记录中删除此字符?我可以获取所有受影响的记录,但我没有办法将记录更新为新值(没有“\ 0”)。
UPDATE: 这似乎工作:
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
那么,我该怎么做?威尔的回答是不正确的,但他的帮助使我找到了解决办法。 – Martin 2010-08-20 18:03:29
如果Will将他关于使用'SUBSTRING(naughtyfield,1,LEN(naughtyfield)1)'的评论转移到他的答案中来解决问题吗? – 2010-08-20 18:06:19
是的...虽然你的答案更优雅,但我不认为我可以在Prod数据库上创建一个功能,只是为了“快速修复”。文书工作太多。 – Martin 2010-08-20 18:08:14