繁体   English   中英

SQL - 仅通过约束接受大写字母

[英]SQL - Only accept capital letters by constraint

ALTER TABLE TblPersoon
    ADD Geslacht char(1) NULL
    CONSTRAINT CKGeslacht CHECK (Geslacht in ('M', 'V'))

当我执行此查询时,之后仍然可以在TblPersoon中名为“Geslacht”的列中插入“m”或“v”。 我怎样才能确保只接受大写字母?

我知道我应该可以在SQL Server Management Studio中执行此操作,但在哪里?

在此输入图像描述

您可以像这样定义显式排序规则

ALTER TABLE TblPersoon
ADD Geslacht char(1) NULL
CONSTRAINT CKGeslacht CHECK (Geslacht collate SQL_Latin1_General_CP1_CS_AS in ('M', 'V')) 

但是,我使用了默认排序 SQL_Latin1_General_CP1_CS_AS区分大小写SQL_Latin1_General_CP1_CS_AS您可以相应地更改它。

您需要区分大小写的排序规则。 您可以通过该方式定义列,也可以在check约束中执行此操作:

ALTER TABLE TblPersoon
    ADD Geslacht char(1) NULL
    CONSTRAINT CKGeslacht CHECK (Geslacht collate Latin1_General_CS_AS in ('M', 'V'));

要么:

ALTER TABLE TblPersoon
    ADD Geslacht char(1) collate Latin1_General_CS_AS
    CONSTRAINT CKGeslacht CHECK (Geslacht in ('M', 'V'));

整理通常是一个棘手的主题。 它涉及不同角色之间的关系。 在SQL Server中,它似乎也与字符集(“代码页”)混为一谈。 我做了哪些基本的事情,如区分大小写和不区分大小写的比较不需要使用它们。 您可以在文档中了解有关它的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM