在sql server中使用主键

时间:2011-03-23 06:52:57

标签: sql-server-2005 primary-key clustered-index

当我在列'FirstName'上创建主键时,是否为该列自动创建了聚簇索引?

2 个答案:

答案 0 :(得分:1)

是 - 这是默认的SQL Server行为。

不一定是这样 - 如果您使用T-SQL脚本创建PK,您还可以选择将其设为非群集 PK并将群集密钥放在另一个上列。

ALTER TABLE dbo.YourTable
    ADD CONSTRAINT PK_YourTable
    PRIMARY KEY NONCLUSTERED(FirstName)

CREATE CLUSTERED INDEX CIX_YourTable
    ON dbo.YourTable(SomeOtherColumn)

在这种情况下,FirstName将是您桌面上的(非群集)主键,而SomeOtherColumn将是同一个表的群集键。

答案 1 :(得分:1)

取决于您在创建密钥时指定的内容。 SQL Server会自动为键约束创建索引,但作为约束语法的一部分,您可以指定CLUSTERED或NONCLUSTERED。