具有指定长度值的列
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);
我想用 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);