You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中如何插入区分大小写的唯一约束字段值?

解决SQL Server唯一约束下插入区分大小写值的问题

问题根源是SQL Server默认使用的排序规则大多是**不区分大小写(CI)**的,比如常见的SQL_Latin1_General_CP1_CI_AS,所以唯一约束会把'a'和'A'判定为重复值。下面是两种可行的解决办法:

方法一:创建表时指定区分大小写的排序规则

在定义列的时候,直接指定带有CS(Case Sensitive,区分大小写)标识的排序规则,示例:

CREATE TABLE test1(
    name1 VARCHAR(100) COLLATE Latin1_General_CS_AS UNIQUE
)

执行这个建表语句后,再插入'a'和'A'就不会触发唯一约束冲突了。

方法二:修改已存在表的列排序规则

如果表已经创建完成,需要先删除原有唯一约束,修改列的排序规则后重新添加约束:

-- 替换成你的表实际的唯一约束名称
ALTER TABLE test1 DROP CONSTRAINT UQ__test1__F0B6284CB05C7FE5;

-- 修改列的排序规则为区分大小写
ALTER TABLE test1 ALTER COLUMN name1 VARCHAR(100) COLLATE Latin1_General_CS_AS;

-- 重新添加唯一约束
ALTER TABLE test1 ADD CONSTRAINT UQ_test1_name1 UNIQUE (name1);

注:排序规则可以根据实际业务场景选择,比如中文环境可以用Chinese_PRC_CS_AS,核心是确保排序规则包含CS标识。

内容的提问来源于stack exchange,提问作者Bala Raj Kumar K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 18:02:06