No Sql Server (2008), é possível ter um PRIMARY KEY
em um conjunto de colunas sem CLUSTERED
ou NONCLUSTERED
índices no mesmo conjunto de colunas?
Estou ciente do fato de que PRIMARY KEY
e CLUSTERED INDEX
chave são conceitos separados e que podemos criar PRIMARY KEY
sem CLUSTERED INDEX
ela (veja abaixo).
ALTER TABLE dbo.Sample
ADD CONSTRAINT PK_Sample_SeqGUID_Col1 PRIMARY KEY NONCLUSTERED (SeqGUID_Col1)
Mas minha dúvida é ver se é possível criar PRIMARY KEY
em uma tabela sem um CLUSTERED
ou NONCLUSTERED
índice nela.
Em suma, não. Uma chave primária, por definição, requer exclusividade, um índice no campo de chave primária é a rota dos mecanismos de banco de dados para impor essa restrição.
De BOL :
Não, uma restrição de chave primária é sempre aplicada no SQL-Server por um índice exclusivo. O índice pode ser agrupado ou não agrupado. Se você não especificar qual tipo, o padrão é
CLUSTERED
para a chave primária. Na documentação do MSDN,CREATE TABLE
: