SQL Server 关键字

SQL Server (Transact-SQL) CHECK 关键字是一个约束,用于确保表列中的所有值都满足指定条件。通过在表上定义 CHECK 约束,它限制了可以为此列输入的值。使用 ANDOR 运算符,可以通过以下方式构造 CHECK 约束:根据行中其他列中的值来限制某些列中的值。

SQL Server CREATE TABLE CHECK 约束

下面提到的语句创建一个名为 Employee 的表,其中包含五列:EmpID 、Name、City、Age 和 Salary,其中 CHECK 约束应用于列 Age.

CREATE TABLE Employee (
  EmpID INT NOT NULL,
  Name VARCHAR(255),
  City VARCHAR(100),
  Age INT CHECK (Age >= 21),
  Salary DECIMAL(18,2)
); 

或者,也可以按如下方式创建:

CREATE TABLE Employee (
  EmpID INT NOT NULL,
  Name VARCHAR(255),
  City VARCHAR(100),
  Age INT,
  Salary DECIMAL(18,2),
  CHECK (Age >= 21)
); 

为 CHECK 约束提供名称,并定义一个对多列(例如City和Age)的CHECK约束,可以使用以下语句:

CREATE TABLE Employee (
  EmpID INT NOT NULL,
  Name VARCHAR(255),
  City VARCHAR(100),
  Age INT,
  Salary DECIMAL(18,2),
  CONSTRAINT CHK_Employee CHECK(Age >= 21 AND City = 'London')
); 

SQL Server ALTER TABLE CHECK 约束

在上面的示例中,创建了一个名为Employee的表。要对 Age 列强制执行 CHECK 约束,语句如下:

ALTER TABLE Employee
ADD CHECK (Age >= 21); 

为 CHECK 约束提供名称,并在多个列上定义 CHECK 约束(比如Age和City),语句如下:

ALTER TABLE Employee
ADD CONSTRAINT CHK_Employee 
CHECK (Age >= 21 AND City = 'London'); 

删除 CHECK约束

删除  CHK_Employee CHECK 约束来自名为Employee的表,语句如下:

ALTER TABLE Employee
DROP CONSTRAINT CHK_Employee;