MS SQL 具有固定数量符号的列

MS SQL column with fixed number of symbols

我正在使用 MS SQL 并创建一个 table。 其中一列应包含带有 4 个符号的字符串:L001L002 不能有更少或更多的符号,例如L01L0001 是错误。

我需要使用哪种类型的数据? CHAR(4)NCHAR(4) 允许我创建 L01 但我的情况是错误的。

您应该使用 CHECK CONSTRAINT: 可以使用约束

创建 table
CREATE TABLE Test (
    ID int NOT NULL,
    Code varchar(4),
    CHECK (LEN(Code) = 4)
);

或存在更新table:

CREATE TABLE Test (
    ID INT NOT NULL,
    Code CHAR(4)
);

ALTER TABLE Test 
   ADD CONSTRAINT CHK_Code_LEN   
   CHECK (LEN(Code) = 4);

测试:

INSERT INTO Test VALUES (1, 'L001'); -- data inserted

INSERT INTO Test VALUES (2, 'L0011'); -- error raised

INSERT INTO Test VALUES (2, 'L11'); -- error raised

结果:

SELECT * FROM Test;

+====+======+
| ID | Code |
+====+======+
| 1  | L001 |
+----+------+

MS SQL fiddle CHECK