CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT **uc**_PersonID UNIQUE (P_Id,LastName)
)
最佳答案
命名约束绝对是一个好习惯(否则 SQL Server 将使用随机名称命名它们,这使得使用通用升级脚本升级多个系统变得非常困难)。
最好使用前缀来查看这是什么类型的约束。
常见的是
- UQ、UC 或 UK 用于唯一约束/唯一键
- 外键外键
- 主键的PK
- CK 用于 CHECK 约束
更新
并且将表的名称添加到约束中是一种很好的做法(以避免歧义)。在您的情况下,这是:
CONSTRAINT uc_Persons_PersonID UNIQUE (P_Id,LastName)
顺便说一句(命名约定):使用单数形式的表名很常见(Person 而不是 Persons)。在这里阅读:Table Naming Dilemma: Singular vs. Plural Names
关于sql - 约束后uc有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36933936/