la clé primaire est toujours indexé dans sql server?
Vous pouvez créer un index cluster sur une colonne autre que la colonne de la clé primaire si un cluster contrainte de clé primaire a été spécifié.
http://msdn.microsoft.com/en-us/library/ms186342.aspx
Ci-dessus m'a dit: je peux créer un index cluster sur les colonnes autres que clé primaire.
Je pense qu'il transmet aussi qu'une clé primaire doit être un non-cluster ou de clé primaire clé cluster. Est-il possible de clé primaire n'est pas indexé?
Quoi de plus:
Lorsque vous créez une contrainte UNIQUE, un index non cluster unique est créée afin d'appliquer une contrainte UNIQUE par défaut. Vous pouvez spécifier un index cluster unique si un index cluster sur la table n'existe pas déjà.
Est-ce à dire une contrainte unique, de créer un index cluster ou d'un index non-cluster?
Vous devez vous connecter pour publier un commentaire.
Non, il n'est pas.
Une sorte d'index est nécessaire pour la police de la
PRIMARY KEY
, sinon elle aurait besoin de la numérisation de l'ensemble de la table sur chaque insert (pour garantir l'unicité).De la docs:
Oui, pour les mêmes raisons.
PRIMARY KEY
etUNIQUE
sont des notions logiques, tandis que l'indice a juste un effet de bord de la mise en œuvre de manière efficace. Donc, à strictement parler,ALTER TABLE ADD CONSTRAINT UNIQUE
etCREATE UNIQUE INDEX
signifier des choses différentes.Si, à l'avenir, certains la tête lumineuse invente un moyen d'utiliser le principe de Pauli ou l'intrication quantique ou que ce soit pour renforcer l'unicité sur le plan physique,
SQL Server 2155
peut l'employer pour faire respecter la contrainte, mais il va encore créer la B-Tree pour l'index.Réponse courte: Non,
Chaque table dans SQL Server doit avoir qu'un seul index cluster. D'autres index non cluster) l'utilisation de l'index cluster. La clé primaire est l'index cluster couramment. Mais la clé primaire est toujours indexé à la différence de clé étrangère.