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 et procédure stockée [2008]


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 64
    Points : 53
    Points
    53
    Par défaut Trigger et procédure stockée
    Bonjour et bonne année à tout le monde!!

    je débute en écriture de trigger et j'ai donc besoin de l'aide des spécialistes....
    d'abord, j'ai bien compris en lisant toutes les docs que j'ai pu trouver qu'on ne met pas de curseur dans des trigger.
    alors mon problème est le suivant :
    j'ai une table de clients (CLIENT). sur cette table, j'ai un trigger AFTER UPDATE qui appelle une procédure stockée (cette procédure stockée attend comme paramètre un code client).
    Si on modifie unitairement un client => pas de souci.
    Si on modifie en série des clients => forcément, ça ne fonctionne plus....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    ALTER TRIGGER [dbo].[update_clients]
    on [dbo].[clients]
    AFTER UPDATE
    AS
    begin
    	set nocount on
    	DECLARE @tiers as varchar(17)
     
    	SET @TIERS = (select INS.RPR_AUXILIAIRE from deleted as DEL join inserted as INS on DEL.RPR_AUXILIAIRE=INS.RPR_AUXILIAIRE) 
    	execute Z_PROC_FORMAT_DATA_VEL @tiers
     
    	set nocount off
     
    END

    je ne sais pas comment appeler ma procédure stockée pour chaque tiers modifié....

    merci d'avance pour votre aide.
    Bonne journée

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2008
    Messages : 698
    Points : 586
    Points
    586
    Par défaut
    Bonjour,

    Vous pouvez rapatriez le code de la procédure stockée dans le trigger et le rendre "ensemblique" en utilisant les tables "Deletes" et "Inserted"

    Sinon je vois pas d'autre choix que d'utiliser un curseur...

    A moins de passer une variable de type table avec votre procédure stockée, mais ça n’empêche pas que le code doit être "ensemblique"

    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 64
    Points : 53
    Points
    53
    Par défaut
    merci pour votre réponse.
    le problème, c'est que ma procédure est appelée par 4 triggers différents....donc je ne peux pas mettre le code de la procédure dans chaque trigger....

  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 760
    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 760
    Points : 52 543
    Points
    52 543
    Billets dans le blog
    5
    Par défaut
    Il vaudrait mieux reporter le code de traitement de votre procédure dans le déclencheur.

    maintenant si vous désirez plus d'aide, donnez le DDL de TOUTES les tables et procédures en jeu et ce que vous voulez faire avec un exemple concret !

    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 expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    A moins de passer une variable de type table avec votre procédure stockée, mais ça n’empêche pas que le code doit être "ensemblique"
    Je pencherais plutôt sur cette dernière solution si vous voulez éviter de coder trop de fois les mêmes règles dans les triggers.
    Par contre on dit ensembliste :-)

    Au passage prenez en compte l'utilisation du trace flag 2453 corrigeant des problème de performances rencontrées dans le cadre de l'utilisation de variable table:
    http://sqlperformance.com/2014/06/t-...iable-perf-fix
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

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

Discussions similaires

  1. Trigger et procédure stockée
    Par emespere dans le forum PL/SQL
    Réponses: 2
    Dernier message: 19/06/2007, 19h15
  2. trigger ou procédure stockée?
    Par iulius dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 29/03/2007, 15h19
  3. [SQL2005][débutant]Trigger ou procédure stockée
    Par DebutantDotNet dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 03/10/2006, 11h15
  4. création triggers et procédure stockées
    Par jhons dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 12/07/2006, 17h54
  5. Triggers et Procédures stockées
    Par agecanonix dans le forum Débuter
    Réponses: 3
    Dernier message: 21/01/2005, 10h16

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