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 :

Tracer les modifications d'une table


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2002
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Tracer les modifications d'une table
    Bonjour, j'ai une table qui intervient dans plusieurs procédures et j'aimerai pour un cas particulier savoir laquelle des procédure fait la modification en question.
    Pour cela j'ai mis le trigger suivant sur la table en question

    create TRIGGER PRHTR_U_JOURIND
    ON THETABLE
    FOR UPDATE
    as
    Insert into THETABLELOG (CHAMPS1, CHAMPS2, CHAMPS3, CHAMPS2_AVANT, CHAMPS3_AVANT)
    select i.CHAMPS1, i.CHAMPS2, i.CHAMPS3, d.CHAMPS2, d.CHAMPS3
    FROM inserted i, deleted d
    where i.CHAMPS1 = d.CHAMPS1
    and not i.CHAMPS2 is null
    and not d.CHAMPS2 is null
    GO

    Avec THETABLELOG :
    CREATE TABLE dbo.THETABLELOG (
    CLESYSTEME int IDENTITY(1,1) not null,
    CHAMPS1 int NOT NULL,
    CHAMPS2 int NOT NULL,
    CHAMPS3 int NULL,
    CHAMPS2_AVANT int NULL,
    CHAMPS3_AVANT int NULL,
    dateaction datetime default CURRENT_TIMESTAMP,
    application varchar(100) default APP_NAME(),
    utilisateur varchar(100) default CURRENT_USER,
    CONSTRAINT THETABLELOG _PK PRIMARY KEY CLUSTERED (CLESYSTEME, CHAMPS1)
    )
    GO

    Mon problème est que je n'arrive pas à moucharder l'id de la procédure qui déclenche mon trigger. Si j'utilise @@PROCID, il me renvoie logiquement l'Id de mon trigger.

    Une idée?

  2. #2
    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
    Quel dommage, vous n'avez aucune possibilité (connu par moi ) de moucharder l'ID de la procédure stockée qui à déclencher un trigger.
    Vous pouvez peut être changer de stratégie:
    Ajouter une commande d'Insertion d'une ligne de mouchard dans chacune de vos procédures stockées.
    C'est peut être le prix à payer !

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

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2002
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Yep c'est ce que j'ai décidé de faire car je crois aussi n'avoir pas vraiment le choix
    Je vous remercie pour votre réponse^^.

  4. #4
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    Citation Envoyé par WOLO Laurent
    Quel dommage, vous n'avez aucune possibilité (connu par moi ) de moucharder l'ID de la procédure stockée qui à déclencher un trigger.
    Vous pouvez peut être changer de stratégie:
    Ajouter une commande d'Insertion d'une ligne de mouchard dans chacune de vos procédures stockées.
    C'est peut être le prix à payer !
    Attention dans ce cas au goulet d'étranglement que vous créeriez dans la table espionne !
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/02/2014, 15h22
  2. Tracer les modification dans une table Oracle
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 3
    Dernier message: 21/09/2010, 11h48
  3. Annuler les modifications apportées à une table.
    Par PadawanDuDelphi dans le forum Bases de données
    Réponses: 5
    Dernier message: 18/10/2006, 09h26
  4. empecher les modifications d'une table
    Par moicats dans le forum Access
    Réponses: 2
    Dernier message: 05/04/2006, 16h39
  5. Erreur lors de modification d'une table
    Par seb.49 dans le forum SQL
    Réponses: 11
    Dernier message: 13/01/2003, 17h16

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