我已经在网上搜索过,但只发现了如何将列更新为小写。有没有一种方法可以在列中放置约束,使其仅接受小写字母,并在尝试以大写字母插入内容时出现错误。
下表如下:
create table Student
(
ID int,
Name varchar(50),
Email varchar(50)
);
最佳答案
您可以将check
约束与binary_checksum
函数一起使用:
alter table student add check (binary_checksum(email) = binary_checksum(lower(email)));
您还可以在
check
中使用多个条件,因此尽管处理需求会增加,但您还可以检查电子邮件地址是否包含@
字符,依此类推。check (binary_checksum(email) = binary_checksum(lower(email)) and charindex('@', email) > 0);
最好在插入客户端应用程序的客户端应用程序中检查输入,或者使用触发器或存储过程来处理插入并将数据强制为小写。
引用SQL Server manual:
关于sql - 将小写约束添加到sql中的列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32095506/