Ser*_*ale 2 sql-server check-constraints
电话号码的约束为7位数.如何检查它是否是SQL Server中的7位数?
CREATE TABLE Customer
(
C_ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
C_Name VARCHAR(255) NOT NULL,
Phone INT
);
Run Code Online (Sandbox Code Playgroud)
不要将电话号码存储为整数.例如,一些有效的数字可以从0开始 - 如果不是今天,也许将来.要进行验证检查,您可以使用like:
CREATE TABLE Customer (
C_ID INT NOT NULL IDENTITY(1, 1) PRIMARY KEY,
C_Name VARCHAR(255) NOT NULL,
Phone CHAR(7), -- you might not want to have such a precise length
CONSTRAINT chk_phone CHECK (phone not like '%[^0-9]%') -- check that no number is not a digit
);
Run Code Online (Sandbox Code Playgroud)
或者,您可以写:
CONSTRAINT chk_phone CHECK (phone like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9]') -- check that no number is not a digit
Run Code Online (Sandbox Code Playgroud)