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 :

Trigger vérification valeur à l’insertion – best practice ?


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 22
    Par défaut [Résolu] Trigger vérification valeur à l’insertion – best practice ?
    Bonjour,

    J’ai une table contenant 2 champs : [A] nvarchar(10) , [B] nvarchar(10)

    Lorsque j’ajoute un enregistrement , si le champ [A] = « toto » je veux affecter « titi » au champ [B].

    Quelle est la bonne pratique ? instead of ? update des inserted ?

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Par défaut
    J’ai une table contenant 2 champs : [A] nvarchar(10) , [b] nvarchar(10)

    Lorsque j’ajoute un enregistrement , si le champ [A] = « toto » je veux affecter « titi » au champ [b].

    Quelle est la bonne pratique ? instead of ? update des inserted ?
    En tout état de cause, INSTEAD OF permet de faire tout ce que tu veux.

    concernant l'update de inserted... je ne suis pas sûr que ca marche... teste le et donne nous le resultat...

    en savoir plus : http://blog.developpez.com/index.php...ger_instead_of

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 22
    Par défaut
    on ne peux pas mettre a jour les inserted..

  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
    21 998
    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 998
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE TRIGGER E_I_MATABLE
    ON MATABLE
    FOR INSERT
    AS
     
    UPDATE MATABLE
    SET B = 'titi'
    FROM MATABLE T
        INNER JOIN inserted i
                ON T.ColClef1 = i.ColClef1 AND T.ColClef2 = i.ColClef2 AND ...
    WHERE T.A = 'toto'
     
    GO
    Cela dit c'est pas du tout une BEST PRATICTICE.... En effet l'usage des trigger est ce qu'il y a de plus couteux.
    La bonne solution est d'inverser la vapeur et donc de modifier la données avant l'insertion. Or SQL Server n'a pas de trigger BEFORE.
    Cependant tu peut utiliser un trigger INSTEAD OF.
    Pour ma part je trouve plus pratique de détourner les INSERT vers des procédures de type P_INSERT dans lesquelles je fait ce que je veux avant l'insertion et d'interdire l'INSERT direct dans la table par le biais des privilèges (sachant qu'un INSERT dans une proc stock est dépersonalisé).

    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 averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 22
    Par défaut
    ok merci

Discussions similaires

  1. Réponses: 11
    Dernier message: 16/06/2006, 13h46
  2. swing best practices.
    Par bbclone dans le forum AWT/Swing
    Réponses: 13
    Dernier message: 07/06/2006, 10h14
  3. Réponses: 4
    Dernier message: 23/05/2006, 14h22

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