MSSQL: 主键是否也是索引?(mssql主键是索引吗)
MSSQL中,主键是否也是索引?
答案是肯定的,MSSQL中的主键除了满足主键的唯一性约束外,也满足索引约束的功能。 主键的典型作用是保证表或组合表中记录的唯一性。若要在表中加入主键,则必须制定一个索引且其索引必须包含主键中定义的列。SQL服务器不允许添加联合主键,仅允许添加单列索引(立即更新索引)或多列索引(延迟更新索引)以保持主键操作。
MSSQL中创建主键一般有两种方法,一种是使用SQL语句创建,另一种是使用MSSQL提供的构造函数创建。
使用SQL语句创建:
CREATE TABLE tablename (
z1 INT,
z2 INT,
PRIMARY KEY (z1, z2)
);
使用MSSQL提供的构造函数创建主键:
ALTER TABLE tablename
ADD CONSTRAINT constraint_name PRIMARY KEY (z1, z2);
无论哪种方法,都能创建出一个唯一性的索引,这就是主键。将主键设置为索引,可以大大提高数据库的查询性能,及防止数据重复的情况发生,由此可见,主键也是一个索引,从功能上来说,它们是一模一样的。