介绍
在SQL Server中,设置唯一键可以确保表中某一列的数值是唯一的。 当插入重复值或更新现有行以在唯一列中具有重复值时,此列将引发错误。这是保证数据完整性的一个重要机制。
本文将介绍如何在SQL Server中设置唯一键。
创建表
在本文中的示例中,将使用如下SQL语句创建一个名为“Students”的表。
CREATE TABLE Students (
StudentID int PRIMARY KEY,
FirstName varchar(255),
LastName varchar(255),
Gender varchar(10),
Age int
);
解释:
以上SQL语句使用CREATE TABLE关键字创建了一个名为Students的表。该表包含5个列:
StudentID - 学生ID号,应该是唯一的。
FirstName - 学生的名字,可以有相同的名字。
LastName - 学生的姓氏,可以有相同的姓氏。
Gender - 学生的性别,可以是男、女或其他。
Age - 学生的年龄,可以有相同的年龄。
设置唯一键
在SQL Server中,可以使用CONSTRAINT关键字来为表添加约束。唯一键是一种常见的约束类型,它可以确保表中某一列的数值是唯一的。
以下SQL语句在Students表的StudentID列上创建了一个唯一键。
ALTER TABLE Students
ADD CONSTRAINT UC_StudentID UNIQUE (StudentID);
解释:
以上SQL语句使用ALTER TABLE关键字向表中添加了一个约束名称为UC_StudentID的唯一键。
该唯一键约束应用于(StudentID)的StudentID列,以确保其中的值在整个表中是唯一的。
唯一键约束可以被用于列的任何大小和数据类型。
注意: 如果在尝试添加具有重复值的行时,唯一键将阻止行的插入。 如果尝试更新现有行使其在唯一列中具有重复值,则会引发错误。
检查唯一键
可以使用以下SQL查询语句检查数据库中已有的唯一键。
SELECT CONSTRAINT_NAME, TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE CONSTRAINT_NAME LIKE 'UC_%';
解释:
以上SQL语句使用SELECT关键字查询了数据库中名为UC_的所有约束名称,并返回这些约束对应的表名和列名。
删除唯一键
如果需要删除唯一键,可以使用以下SQL语句来删除它。
ALTER TABLE Students
DROP CONSTRAINT UC_StudentID;
解释:
以上SQL语句使用ALTER TABLE关键字从Students表中删除了名为UC_StudentID的唯一键约束。
结论
设置唯一键是保证数据库中数据完整性的重要手段。在SQL Server中,可以使用ALTER TABLE语句来添加、查询和删除唯一键约束。