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 :

créer une liste de valeurs autorisées pour un champ


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 55
    Points : 24
    Points
    24
    Par défaut créer une liste de valeurs autorisées pour un champ
    Bonjour,

    je fais un projet en C# avec une base SQL Server.

    Je souhaiterais pouvoir restreindre la valeur de certains champs d'une table à une liste que je definis moi-meme.

    Quand un utilisateur veut ensuite remplir la valeur du champ, il a le choix dans une liste deroulante par exemple.

    Il me semble que c'est possible avec Access.
    Quelqu'un pourrait m'expliquer sous SQL Server si c'est possible ?

    merci

  2. #2
    Membre actif Avatar de f_bobo
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mai 2006
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 202
    Points : 281
    Points
    281
    Par défaut
    Salut,

    Sous SQL SERVER, tu peux juste mette une contrainte sur un champ pour spécifier la liste des valeurs authorisées.
    Mais pour le remplissage, ce n'est qu'un contrôle d'intégrité style x est pas dans la liste ==> erreur.
    Sinon, faut faire une table avec les valeurs et dans ta programmation C# tu affiches une liste avec ces valeurs pour remplir au final ton champs dans la BDD.

    Je vois pas autre chose mais je ne connais pas tout loin de là

    Cordialement,

    Florent
    Cordialement,

    Florent

    Je penche donc je suis...

  3. #3
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    C'est exactement ça, f_bobo.
    Par exemple une table de référence liée par une clé étrangère.
    Access gère l'affichage de ses données. SQL Server est un serveur qui répond à des requêtes. C'est ton application cliente qui est reponsable d'afficher des combos. Tout ce que va faire SQL Server, c'est te renvoyer une erreur quand tu essaieras de lui envoyer ta requête de modification avec une valeur qui n'est pas dans la liste, parce que ses contraintes (un CHECK, ou une clé étrangère sur une table de référence) seront violées.
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 55
    Points : 24
    Points
    24
    Par défaut
    merci pour vos reponses

    je voulais eviter de creer une autre table avec les valeurs autorisées.

    je suppose que je devrais me contenter de mettre une contrainte.

    ce que je voulais en fait, c'est pouvoir gerer au niveau d'une table le domaine de valeurs de certains de ses champs

  5. #5
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    ne néglige pas les avantages des tables de référence : elles sont auto-explicatives, et elles te permettent de gérer très simplement le domaine de valeurs. Sans ça, si tu ajoute une valeur possible, tu dois modifier la structure de ta table (en modifiant la contrainte), et ton code client (et recompiler, déployer, etc. si c'est du compilé, déployer si c'est du script...)
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 55
    Points : 24
    Points
    24
    Par défaut
    pourrais-tu me confirmer que dans ce cas, je dois créer une table, qui contient mes valeurs possibles, pour chaque champ concerné ?

    sauf pour ceux qui partagent le meme domaine de valeurs, dans ce cas ces champs seront liés a la meme table

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 55
    Points : 24
    Points
    24
    Par défaut
    et si je souhaitais faire ce controle au niveau de l'interface (ma fenetre C#)

    est-ce que mon application resterait cohérente ?

  8. #8
    Membre actif Avatar de f_bobo
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mai 2006
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 202
    Points : 281
    Points
    281
    Par défaut
    Au niveau de l'interface oui, mais comme l'a si bien exprimé rubid, le fait de faire ça oblige de modifier le programme et donc de le diffuser alors que si c'est dans une table, tu peux ajouter à la volé des lignes qui seront automatiquement prisent en compte par ton appli.

    Mais là c'est le choix du développeur
    Cordialement,

    Florent

    Je penche donc je suis...

  9. #9
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Citation Envoyé par elitol
    et si je souhaitais faire ce controle au niveau de l'interface (ma fenetre C#)
    est-ce que mon application resterait cohérente ?
    Pas recommandé.
    En effet, un utilisateur peut sauter la couche applicative et inserer des lignes en passant par Query Analyser et votre base de données va valider ces informations.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 55
    Points : 24
    Points
    24
    Par défaut
    merci, je suis definitivement convaincue

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 20/08/2015, 12h00
  2. [Python 2.X] Créer une liste à N valeurs
    Par Chacha1234 dans le forum Général Python
    Réponses: 5
    Dernier message: 21/01/2015, 10h41
  3. Réponses: 3
    Dernier message: 23/06/2014, 10h21
  4. Réponses: 3
    Dernier message: 19/07/2009, 06h46
  5. Comment créer une liste de valeur
    Par chawiken dans le forum IHM
    Réponses: 3
    Dernier message: 20/05/2008, 15h04

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