sql-server - 为什么在 SQL Server 中是和是相同的
问题描述
在 SSMS v17.9 中,连接到 SQL Server 14.0.1000 实例时,系统将这两个字符视为相同:和
我设置了一个 [Char] NVARCHAR(2) 作为主键的 [Kanji] 表。添加“”后,我无法添加“”,因为它引发了“密钥重复”错误。
我运行了这个 T-SQL:
IF ( N'' = N'') PRINT 'true' ELSE PRINT 'false'
结果打印出“真”。
解决方案
你必须使用正确的排序规则,
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 对象级别动态设置
推荐阅读
- c# - 在 MongoDb C# 驱动程序中推送到深层嵌套数组时遇到问题
- r - 循环遍历列表以匹配可能有多个匹配项的值
- java - 在命令行中运行 Eclipse 项目
- python - 使用 gcc 编译 cython:#include "ios" 中没有这样的文件或目录
- c# - 为什么我的 ajax/fetch 调用在我的控制器中没有路由时不起作用?
- jquery - 使用 JQuery 缩放图像
- kibana - 文本数据的 Kibana 饼图
- swift - 通过电子邮件发送密码重置代码 - Swift + Firebase
- swift - 如何向核心数据模型子类添加方法
- python - 是否有“与 conn.cursor() as...” 使用 Sqlite 的方式?