【发布时间】:2009-02-04 13:35:33
【问题描述】:
具体来说,Sql Server 2005/T-Sql。我有一个主要是一系列两个字符的字段,它们都应该是大写的,但是有一些旧数据早于当前的数据库/系统,我需要找出哪些记录违反了大写外壳契约。
我认为这会起作用:
select * from tbl where ascii(field1) <> ascii(upper(field1))
事实上,它还给了我一些记录。此后它们已被更正,现在该查询不返回任何数据。但有人告诉我,数据库中仍然存在大小写混合数据,我刚刚找到了一个示例:“FS”和“Fs”都报告了相同的 ascii 值。
为什么这种方法有缺陷?有什么更好的方法来解决这个问题,或者我该如何修复这种方法以使其正常工作?
【问题讨论】:
标签: sql sql-server database ascii