Microsoft SQL Server Management Studio 属性大小写敏感性

4
我们有一张表,其中userId字段被定义为唯一标识符GUID。我们使用Microsoft SQL Server Studio查询和修改用户信息。我们遇到的问题是,在"选择"行时,结果返回的是大写的"userId",而在选择"编辑"时,结果返回的是小写的"userId"。
有没有办法在表上执行选择操作并检索完全按照字段输入的方式,包括userId的大小写敏感性?
选择前X行: 选择前X行 编辑前X行: 编辑前X行

有趣的观察!不过是否存在问题或担忧呢?如果您没有大小写敏感的排序规则,我认为这并不重要。 - Greg
我有一个使用Latin1_General_CS_AS排序规则的数据库。select 1 where cast('950dbbf0-5fcb-4db7-815f-39cbd4cec2c0' as uniqueidentifier) = CAST('950DBBF0-5FCB-4DB7-815F-39CBD4CEC2C0' AS UNIQUEIDENTIFIER) 返回一行数据。除非是“编辑顶部行”出现了其他问题,否则这不应该有影响。 - Bacon Bits
1
没错,但实际上这并不重要,因为该值会被隐式转换为 GUID,并且字符串表示的大小写没有任何区别。 - Sean Lange
1
我明白了。这是在SSMS中的可视化表示。但这里没有问题。你因此遇到了问题吗? - Sean Lange
让我们在聊天中继续这个讨论 - Sarah A
显示剩余2条评论
1个回答

1
在您的情况下,将问题视为“客户端代码”,而不是服务器上的SQL值。 GUID值是数据库中的二进制128位字段。查询结果窗口或任何其他字符串表示可能会将字符串十六进制值升级,以便我们人类可以看到这些值。
您可能正在依赖客户端代码中的区分大小写性,因为您可能依赖隐含或显式的GUID进行字符串转换。或者可能是字符串到GUID的转换。
我经常看到这种情况发生在XML或文件提要中,它们可能会升级或降低值的字符串表示形式,从而导致C# .NET中的区分大小写字符串比较失败。我从未见过字符串大写或小写或正式GUID表示对SQL Server有影响,它总是正确地转换或转换,有时需要一些转换助手。
如果出现问题,则始终在客户端代码中。
.NET GUID类型在编写或评估GUID字符串表示形式时非常有用。特别是GUID类型中的ToString格式化程序具有“N”、“D”、“B”等格式,如果需要运行时的精确字符串类型操作,则可以提供所需的内容。

我在文件字符串GUID表示方面,已经成功地采用了32个大写字母的“N”格式,没有任何格式限制。这种方式似乎在文件级别上适用于任何情况。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接