SQL Server:创建带主键、唯一约束及Name列聚集索引的标签表SQL语句
没问题,这就给你写出符合要求的SQL脚本,我还加了注释帮你理清每部分的作用:
创建标签表及相关约束的SQL脚本
-- 创建标签表 CREATE TABLE Tags ( -- Id列:bigint类型,非聚集主键,用于外键关联 Id BIGINT IDENTITY(1,1) NOT NULL CONSTRAINT PK_Tags_Id PRIMARY KEY NONCLUSTERED, -- Name列:nvarchar(63),存储标签名称,不允许为空 Name NVARCHAR(63) NOT NULL ); -- 给Name列添加唯一约束,保证标签名称不重复 ALTER TABLE Tags ADD CONSTRAINT UQ_Tags_Name UNIQUE(Name); -- 创建基于Name列的聚集索引,强制按字母顺序(升序)排序,加速标签查询 CREATE CLUSTERED INDEX IX_Tags_Name ON Tags(Name ASC);
关键细节说明
- 主键
PK_Tags_Id指定为NONCLUSTERED:因为SQL Server中默认主键会自动创建聚集索引,而我们需要把聚集索引分配给Name列,所以这里显式设置主键为非聚集,避免冲突。 - 唯一约束
UQ_Tags_Name:确保所有标签名称都是唯一的,完全匹配你的需求。 - 聚集索引
IX_Tags_Name:聚集索引会物理上按Name的字母顺序排列数据,这样按名称查询、排序时性能会大幅提升,完美达成你加快标签查询速度的要求。
内容的提问来源于stack exchange,提问作者horotab
相关产品推荐
相关产品推荐

