Comment puis-je la force d'une colonne à être unique pour l'ensemble d'une table dans SQL Server 2008 R2?
J'ai une table avec un Description
champ. Je veux m'assurer que les deux lignes ont le même "Description"," mais je ne peux pas faire de Description dans ma colonne d'identité (ma colonne ID est un entier (int).
Est-il sécuritaire pour définir Description
comme une deuxième clé primaire (en plus de mon IDENTIFIANT qui est déjà une clé primaire)?
OriginalL'auteur Giffyguy | 2010-12-20
Vous devez vous connecter pour publier un commentaire.
Ajouter un index Unique pour la Description de la colonne.
À l'aide de Sql Server Management Studio, cliquez du bouton droit sur la table et choisir la Conception. Puis faites un clic droit sur une colonne et choisir "Index/clés". Vous serez invité à la fenêtre suivante
Cliquez sur Ajouter en bas à gauche et ensuite spécifier les propriétés de votre index. Si vous souhaitez utiliser un script DDL ensuite utiliser quelque chose comme cela
Je suggère également que vous devez toujours le faire (et toutes les autres modifications DDL) dans le script, de sorte qu'ils peuvent être correctement versionnées et stockés dans votre soruce système de contrôle. Modifications de base de données ne devrait jamais être fait à partir de la Gestion de Studio de l'interface graphique.
Lorsque j'essaie de "Ajouter" un élément et cliquez sur Colonnes en vertu de (Général) il ne me donne la possibilité de choisir mon "id" de la colonne et ne me laisse pas (ou même de l'affichage) de la "Chaîne" de la colonne dans la zone de liste déroulante. Je n'ai que deux colonnes, l'une est une pièce d'identité, l'autre juste une colonne de texte où chaque élément doit être unique. Pourquoi ne veut-il pas me permettre de sélectionner le texte à base de colonne en vertu de l'index des touches de la section lorsque je clique sur ajouter et aller à la colonne?
OriginalL'auteur Lorenzo
Il n'y a pas une telle chose comme un 'secondaire clé primaire'. Il y a une clé primaire par table.
Créer un La contrainte UNIQUE sur le
Description
colonne (très inhabituel chose à faire, d'ailleurs. Par exemple, Il est plus habituel pour créer un index unique surProduct Name
plutôt qu'unProduct description
) ou si vous avez des valeurs null dans laDescription
colonne de créer un Index filtré (SQL Server 2008)OriginalL'auteur Mitch Wheat
Il est une autre façon de faire cela avec la SSMS GUI si vous préférez:
J'ai remplacé le
Description
colonne avec le nomMyUniqueColumn
pour le bien de l'exemple.ADD CONSTRAINT
script SQL.Les images sont juste des captures d'écran des étapes numérotées. Laissez-moi savoir si vous ne pouvez pas suivre toutes les étapes et je vais ajouter plus de texte.
Belle réponse détaillée qui explique bien ce qui se passe réellement.
OriginalL'auteur Tony L.