创建唯一约束

适用于:SQL Server 2016 (13.x) 及更高版本Azure SQL数据库Azure SQL 托管实例

可以使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中创建唯一约束,以确保不会在不参与主键的特定列中输入重复值。 创建唯一约束会自动创建相应的唯一索引。

注意

有关 Azure Synapse Analytics 中的唯一性约束的信息,请参阅 Azure Synapse Analytics 中的主键、外键和唯一键

权限

需要对表的 ALTER 权限。

使用 SQL Server Management Studio

创建唯一约束

  1. 在对象资源管理器中,右键单击要为其添加唯一约束的表,然后选择“设计” 。

  2. 在“表设计器”菜单上,选择“索引/键”

  3. 在“索引/键”对话框中,选择“添加” 。

  4. 在“常规”下的网格中,选择“类型”,从该属性右侧的下拉列表框中选择“唯一键”,然后选择“关闭” 。

  5. “文件” 菜单上,选择“ 保存表名称”。

使用 Transact-SQL

创建唯一约束

  1. “对象资源管理器” 中,连接到 数据库引擎的实例。

  2. 在标准栏上,选择“新建查询” 。

  3. 将以下示例复制并粘贴到查询窗口中,然后选择“执行”。 该示例将创建表 TransactionHistoryArchive4 ,并且在列 TransactionID上创建唯一约束。

    USE AdventureWorks2012;  
    GO  
    CREATE TABLE Production.TransactionHistoryArchive4  
     (  
       TransactionID int NOT NULL,   
       CONSTRAINT AK_TransactionID UNIQUE(TransactionID)   
    );   
    GO  
    
    

在现有表中创建唯一约束

  1. “对象资源管理器” 中,连接到 数据库引擎的实例。

  2. 在标准栏上,选择“新建查询” 。

  3. 将以下示例复制并粘贴到查询窗口中,然后选择“执行”。 该示例在表 PasswordHash 中的 PasswordSaltPerson.Password列上创建唯一约束。

    USE AdventureWorks2012;   
    GO  
    ALTER TABLE Person.Password   
    ADD CONSTRAINT AK_Password UNIQUE (PasswordHash, PasswordSalt);   
    GO  
    
    

在新表中创建唯一约束

  1. “对象资源管理器” 中,连接到 数据库引擎的实例。

  2. 在标准栏上,选择“新建查询” 。

  3. 将以下示例复制并粘贴到查询窗口中,然后选择“执行”。 该示例创建一个表并在 TransactionID列上定义唯一约束。

    USE AdventureWorks2012;  
    GO  
    CREATE TABLE Production.TransactionHistoryArchive2  
    (  
       TransactionID int NOT NULL,  
       CONSTRAINT AK_TransactionID UNIQUE(TransactionID)  
    );  
    GO  
    

后续步骤