IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

rendre unique deux colonnes


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Par défaut rendre unique deux colonnes
    j'ai une table qui contient n1, annee1, d1, annee2 le n1 et annee2 c'est la cle primaire, mais mon but c'est d'empecher l'utilisateur de saisir d1 et annee2 deux fois, j'ai mis le tout en cle primaire mais ca bloque pas si je resaisie la meme valeur pour d1 et annee2, ya t'il une possiblité de rendre la combinaison d1/annee2 unique ?

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Par défaut
    Citation Envoyé par Msysteme Voir le message
    j'ai une table qui contient n1, annee1, d1, annee2 le n1 et annee2 c'est la cle primaire, mais mon but c'est d'empecher l'utilisateur de saisir d1 et annee2 deux fois, j'ai mis le tout en cle primaire mais ca bloque pas si je resaisie la meme valeur pour d1 et annee2, ya t'il une possiblité de rendre la combinaison d1/annee2 unique ?
    si, en créant une contrainte ou un index unique

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 139
    Par défaut
    Citation Envoyé par Msysteme Voir le message
    j'ai une table qui contient n1, annee1, d1, annee2 le n1 et annee2 c'est la cle primaire, mais mon but c'est d'empecher l'utilisateur de saisir d1 et annee2 deux fois, j'ai mis le tout en cle primaire mais ca bloque pas si je resaisie la meme valeur pour d1 et annee2, ya t'il une possiblité de rendre la combinaison d1/annee2 unique ?
    Bonjour,

    Peux-tu reformuler ta demande ? J'ai pas bien compris ton besoin...

    David.

  4. #4
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Par défaut
    ma question est la suivante : comment puis je créer une contrainte unique sur deux la combinaison de deux colonnes ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 139
    Par défaut
    Tu peux créer un index UNIQUE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE UNIQUE NONCLUSTERED INDEX IX_Table1 ON dbo.Table1
    	(
    	col1,
    	col2
    	)
    L'utilisateur se verra retourner un message d'erreur s'il tente d'insérer une combinaison col1, col2 qui existe déjà...

    Msg*2601, Niveau*14, État*1, Ligne*1
    Impossible d'insérer une ligne de clé en double dans l'objet 'dbo.Table1' avec un index unique 'IX_Table1'.

    L'instruction a été arrêtée.

    Est-ce bien ce que tu souhaitais faire ?

    David.

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 999
    Billets dans le blog
    6
    Par défaut
    Créer un index unique est idiot. Soit c'est un index, soit c'est une contrainte d'unicité, qui de toute façon créera un index sous jacent. Visiblement vous mélangez les concepts physiques et logiques !!!

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 139
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    ...Visiblement vous mélangez les concepts physiques et logiques !!!
    Autant pour moi Frédéric, j'avoue que créer un index alors que c'est d'une contrainte dont il a besoin, c'est plutôt du "Hors Sujet"...

Discussions similaires

  1. Comparer deux colonnes et supprimer valeurs uniques
    Par berlos dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 03/12/2009, 08h07
  2. doublons deux colonnes à repérer de manière unique
    Par djulien19 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/07/2008, 14h41
  3. [CR] Faire un groupe sur deux colonnes, voir mon exemple
    Par Etienne51 dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 08/10/2004, 14h02
  4. Réponses: 10
    Dernier message: 19/05/2004, 15h44
  5. [C#] Comment faire pour rendre invible une colonne(ListView)
    Par Jfrancois57 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/05/2004, 13h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo