具有指定长度值的列

column with specified length value

我想用 SQL 服务器创建一个列,该列接受准确的 6 位数字的值。不接受具有更多或更少位数的值。

使用 char(6)Decimal(6,0)

但要强制其不能少于 6 位,您需要使用 check constraint

您可以为此使用 SQL 服务器的 Check Constraints。这些是限制列中允许值的好方法。

如果您的六位数字始终是整数,您的规则将如下所示:

ColumnA >= 100000 AND ColumnA <= 999999.

您可以使用简单的 CHECK 约束并检查列长度。这已经被告知,但没有发布解决方案,所以我在这里:

CREATE TABLE dbo.Test
(
    YourSixDigitColumn INT
    , CONSTRAINT CK_CheckLength CHECK (LEN(YourSixDigitColumn) = 6)
);

如果我尝试插入其中之一:

INSERT INTO dbo.Test
VALUES (12345);

INSERT INTO dbo.Test
VALUES (1234567);

它会向我抛出这个讨厌的错误信息:

Msg 547, Level 16, State 0, Line 7 The INSERT statement conflicted with the CHECK constraint "CK_CheckLength". The conflict occurred in database "master", table "dbo.Test", column 'YourSixDigitColumn'. The statement has been terminated.

而这个 SQL 语句完美无缺:

INSERT INTO dbo.Test
VALUES (123456);