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

Développement SQL Server Discussion :

Contrôle sur les données à l'insert


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 272
    Par défaut Contrôle sur les données à l'insert
    Bonjour,

    Je développe une petite appli Access 2002 basée sur SQL Server 2008R2.

    J'aimerais effectuer un contrôle à l'insertion des données mais je ne sais pas trop où et comment le faire (trigger SQL, ctrl dans le formulaire access, ...).

    En fait j'édite une table comportant plusieurs colonne de prix (P1, P2, P3, ...) ainsi qu'une colonne Rabais. La règle ici est que si le rabais est renseigné, les prix doivent absolument être nuls et à l'inverse, si les prix sont renseignés, le rabais doit être nul!

    Comment et où dois-je faire ce petit contrôle?

    D'avance merci pour votre réponse et bonne journée

    Julius

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    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 : 22 010
    Billets dans le blog
    6
    Par défaut
    Une simple contraintes CHECK :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ALTER TABLE MaTable
       ADD MaContrainteCHECK
       CHECK (
           ((P1 IS NULL AND P2 IS NULL AND P3 IS NULL ...) AND Rabais IS NOT NULL)
       OR ((P1 IS NOT NULL AND P2 IS NOT NULL AND P3 IS NOT NULL ...) AND Rabais IS NULL)
    )
    Mais attention, tous les cas ne sont pas couverts.. Exemple p1 null, P2 renseigne, Rabais ???

    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/ * * * * *

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 272
    Par défaut
    Merci SQLpro,

    C'est clair, c'est bref ... c'est cool.

    Tu as raisons pour les autres cas. Mais sur ton modèle je devrais m'en sortir.
    Mais pour tous les gérer ( en + des contraintes d'intégrité), n'aurais-je pas meilleur temps de créer un trigger?



    Julius

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    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 : 22 010
    Billets dans le blog
    6
    Par défaut
    As ton avis si on a créé les contraintes c'était pour faire joli ???

    • Les trigger permettent de faire du code itératif là ou une contrainte fait de l'ensembliste (toujours plus rapide en volume).
    • Les trigger agissent après alors que la contrainte agit avant...


    Alors as ton avis trigger ou contrainte ???

    C'est marrant cette propension qu'ont les développeurs à toujours choisir la pire solution !!!

    Dans les journées SQL Server chez Microsoft la semaine dernière, j'ai montré la différence de perf entre trigger et contraintes.... Dommage que vous ne soyez pas venu... D'autant que
    1) c'était gratuit
    2) y'avait même à manger et à boire...

    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/ * * * * *

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 272
    Par défaut
    Merci de m'éclairer. J'aurai appris quelque chose

    Je ne suis pas encore très au point comme tu l'as constaté mais j'essaie de m'améliorer!!

    Merci encore
    A++

    Julius

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

Discussions similaires

  1. Filtrer sur les données vides dans un formulaire
    Par jevany dans le forum Access
    Réponses: 7
    Dernier message: 29/05/2006, 08h50
  2. MAX et Jointure sur les données correspondantes
    Par lepeule dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/04/2006, 16h18
  3. [debutant] Question sur les données.
    Par Norabfr dans le forum Débuter
    Réponses: 4
    Dernier message: 03/01/2006, 13h47
  4. Filtre sur les données des 3 derniers mois?
    Par Arkalys dans le forum Access
    Réponses: 2
    Dernier message: 21/10/2005, 09h02

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