2010-07-15 11 views
4

Je voudrais créer une table et y ajouter une clé primaire. Pour ce que je comprends, MS SQL ajoute un index clusterisé sur la clé primaire et le nommera avec un nom par défaut.INDEX NAME sur la PRIMARY KEY

Je voudrais savoir si c'est possible créer une table et attribuer un nom personnalisé pour l'index créé par défaut ou comment puis-je changer le nom par défaut après que la table a été créée.

Merci!

+0

pour l'indice? ou pour la colonne (clé)? –

+1

Dans le serveur SQL, vous n'avez pas besoin de mettre un index cluster sur une clé primaire. Oui, c'est la valeur par défaut, mais la clé primaire non clusterisée fonctionne également. Sauf si vous n'ajoutez pas d'autre index clusterisé, la table sera heap. –

+0

pour l'index s'il vous plaît – GibboK

Répondre

9

Bien sûr - vous pouvez définir la contrainte PRIMARY KEY dans votre déclaration CREATE TABLE.

Cela va générer la valeur par défaut PRIMARY KEY

CREATE TABLE dbo.Table 
    (ID INT IDENTITY PRIMARY KEY, 
    .......) 

mais vous pouvez définir totalement le nom de la contrainte aussi:

CREATE TABLE dbo.Table2 
    (ID INT IDENTITY CONSTRAINT PK_Table2 PRIMARY KEY, 
    ......) 
+0

ok, mais comment puis-je choisir le nom de l'index au lieu d'utiliser celui par défaut? – GibboK

+0

@GlbboK: voir mon deuxième exemple - vous pouvez choisir le nom de la CONTRAINTE qui est aussi le nom de l'index: 'CONSTRAINT PK_Table2 PRIMARY KEY' - vous pouvez choisir si elle s'appelle' PK_Table2' ou quoi que ce soit d'autre appeler.... –

-3

Lorsque vous créez une clé primaire en cluster, vous ne créez pas d'index, mais une table organisée en tant qu'index. Clé Clé est l'option par défaut lorsque vous créez une table avec la clé primaire sur SqlServer.

http://msdn.microsoft.com/en-us/library/aa933131(SQL.80).aspx

+0

Oh oui, vous ** DO ** créer un index! C'est l'index clusterisé - et oui, la table est organisée par cet index - mais c'est quand même un index pas moins. –

+0

J'utilise oracle. Sur les tables Oracle IOT (Organization Index) sont similaires à SqlServer Clustered Tables. Le segment de l'index sur une table IOT est nommé TableName (est le même segment). – x77