📅  最后修改于: 2023-12-03 15:17:44.506000             🧑  作者: Mango
在 MS SQL Server 中,唯一约束是一种用于保证列或列集中所有值都是唯一的约束。这是通过在列(或列集)上创建索引来实现的,索引自动排序并检查列中的每个值是否唯一。
可以使用 CREATE TABLE
语句来创建一个带有唯一约束的表。例如,以下语句将创建一个名为 employees
的表,并在 employee_id
列上添加唯一约束:
CREATE TABLE employees (
employee_id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
CONSTRAINT uq_employee_id UNIQUE (employee_id)
);
在上面的语句中,CONSTRAINT
关键字用于定义约束名称,UNIQUE
关键字用于指定唯一约束。
另外,也可以使用 ALTER TABLE
语句来向已经存在的表中添加唯一约束。例如,以下语句将向名为 employees
的表中添加一个唯一约束:
ALTER TABLE employees
ADD CONSTRAINT uq_employee_id UNIQUE (employee_id);
在 MS SQL Server 中,约束名称必须唯一。如果不指定约束名称,则系统会自动分配一个名称。然而,最好为约束指定一个有意义的名称,以便于维护和管理。一般来说,约束名称应该以 "fk_"(外键约束)或 "uq_"(唯一约束)开头。
使用唯一约束可以在表中对一列或组合列建立唯一性约束。这意味着在该列或组合列上不允许出现重复的值。如果尝试添加一个重复值,则会引发一个错误。
唯一约束可以应用于空值(NULL),但是可以存在任意数量的 NULL 值。因此,只有非空值需要唯一性。
唯一约束可以在创建表时定义,也可以在表创建后使用 ALTER TABLE
语句添加。
可以使用 ALTER TABLE
语句来禁用和启用某个约束。例如,以下语句将禁用名为 uq_employee_id
的唯一约束:
ALTER TABLE employees
NOCHECK CONSTRAINT uq_employee_id;
可以使用 NOCHECK
关键字来禁用约束。
禁用约束后,可以使用 ENABLE
关键字启用该约束。以下是一个例子:
ALTER TABLE employees
CHECK CONSTRAINT uq_employee_id;
可以使用 CHECK
关键字来启用该约束。
MS SQL Server 中的唯一约束可确保列或列集中所有值的唯一性。请记住以下关键点:
CREATE TABLE
或 ALTER TABLE
语句来创建唯一约束。NOCHECK
和 ENABLE
关键字来禁用和启用约束。