首页 > 解决方案 > 为什么在 SQL Server 中是和是相同的

问题描述

在 SSMS v17.9 中,连接到 SQL Server 14.0.1000 实例时,系统将这两个字符视为相同:

我设置了一个 [Char] NVARCHAR(2) 作为主键的 [Kanji] 表。添加“”后,我无法添加“”,因为它引发了“密钥重复”错误。

我运行了这个 T-SQL:

IF ( N'' = N'') PRINT 'true' ELSE PRINT 'false'

结果打印出“真”。

标签: sql-servertsqlkanji

解决方案


你必须使用正确的排序规则,

IF ( N'' COLLATE Chinese_Simplified_Stroke_Order_100_CI_AI = N'' COLLATE Chinese_Simplified_Stroke_Order_100_CI_AI) PRINT 'true' ELSE PRINT 'false'

排序规则可以在 select 语句或 DB 对象级别动态设置

阅读有关排序规则的更多信息


推荐阅读