如何在varchar区分大小写的字段(SQL Server 2005)上创建唯一约束?
目前我的约束如下:
alter table MyTable
add constraint UK_MyTable_MyUniqueKey unique nonclustered (MyCol)
Run Code Online (Sandbox Code Playgroud)
当我尝试插入以下两个值时,出现"违反UNIQUE KEY约束..."错误.
insert into MyTable (MyCol) values ('ABC')
insert into MyTable (MyCol) values ('abc') --causes a violation of UNIQUE KEY constraint 'UK_MyTable_MyUnqiueKey'
Run Code Online (Sandbox Code Playgroud)
我希望将两个不同用途的值作为unqiue处理.我想它将涉及以下代码,但我不知道它如何改变我的add constraint语法.
COLLATE SQL_Latin1_General_CP1_CS_AS
Run Code Online (Sandbox Code Playgroud) 我Arabic_BIN在Microsoft SQL Server 2005上有一个带有排序规则的数据库.
如果我运行此查询:
SELECT ID FROM maj_Users WHERE UserName = 'mahdi'
Run Code Online (Sandbox Code Playgroud)
我什么都没得到,但是如果我运行这个查询:
SELECT ID FROM maj_Users WHERE UserName = 'Mahdi'
Run Code Online (Sandbox Code Playgroud)
我会得到一个单元格...似乎SQL Server正在敏感地搜索数据库,但我想搜索不区分大小写的数据库.
有什么办法吗?
编辑:我也试过,SELECT ID FROM maj_Users WHERE UserName LIKE 'mahdi'但它没有工作......