begin process at 2012 05 27 03:47:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

SQL Server, MSDE, SQL Express

 > 

Débutant(s)

 > 

Trigger UPDATED sur plusieurs champs


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Trigger UPDATED sur plusieurs champs

lundi 2 avril 2007 à 15:53:31 | Trigger UPDATED sur plusieurs champs

Maroxye

Bonjour!

Je débute en SQL et je fois faire un TRIGGER sur l'ajout, la suppression et la modification de certains champs dans une table. Lorsque ces 3 opérations surviennent, j'ajoute l'information dans une nouvelle table(M=modification, A=Ajout, S=suppression + usager ayant fait la modif +date et heure). Pour l'ajout et la suppression, pas de problèmes. C'est pour la modif qu'il y en a un.

Voici mon code :

***************************************************
CREATE TRIGGER item_updated
ON item
FOR UPDATE
AS
DECLARE
@AncienneValeur VARCHAR(100),
@NouvelleValeur VARCHAR(100),
@NomChamp VARCHAR(100)

IF UPDATE(description)
  BEGIN
  SELECT @AncienneValeur = (SELECT description FROM Deleted)
  SELECT @NouvelleValeur = (SELECT description FROM Inserted)
  SELECT @NomChamp = "Description"
  END

  IF UPDATE(revision)
    BEGIN
    SELECT @AncienneValeur = (SELECT revision FROM Deleted)
    SELECT @NouvelleValeur = (SELECT revision FROM Inserted)
    SELECT @NomChamp = "Revision"
    END

INSERT INTO item_trigger ( Date_modif,Type_modif,Nom_table, Nom_champ, Ancienne_info, Nouvelle_info, Nom_usager)
SELECT CURRENT_TIMESTAMP, "M", "item", @NomChamp, @AncienneValeur, @NouvelleValeur, UpdatedBy from inserted item

***************************************************

Le problème est que si quelqu'un modifie 2 champs en même temps, seulement une ligne s'ajoute à ma table(il ne tient pas compte de toutes les opérations en même temps). J'imagine qu'il me faudrait une table temporaire ou un curseur???Et si oui, où le placer?

Merci à l'avance de votre aide, je suis vraiment bloqué!


Isabelle

vendredi 26 octobre 2007 à 00:42:58 | Re : Trigger UPDATED sur plusieurs champs

asmaa17


salut isabelle,
essaye ce code:
--inserer la clause insert into à l'interieur de chaque  if update
CREATE TRIGGER item_updated
ON item
FOR UPDATE
AS
DECLARE
@AncienneValeur VARCHAR(100),
@NouvelleValeur VARCHAR(100),
@NomChamp VARCHAR(100)

IF UPDATE(description)
  BEGIN
  SELECT @AncienneValeur = (SELECT description FROM Deleted)
  SELECT @NouvelleValeur = (SELECT description FROM Inserted)
  SELECT @NomChamp = "Description"
---insertion d'information
INSERT INTO item_trigger ( Date_modif,Type_modif,Nom_table, Nom_champ, Ancienne_info, Nouvelle_info, Nom_usager)
SELECT CURRENT_TIMESTAMP, "M", "item", @NomChamp, @AncienneValeur, @NouvelleValeur, user_name(1)
 from inserted ---updateby( ne fonction pas sous sql server 2000)
  END

  IF UPDATE(revision)
    BEGIN
    SELECT @AncienneValeur = (SELECT revision FROM Deleted)
    SELECT @NouvelleValeur = (SELECT revision FROM Inserted)
    SELECT @NomChamp = "Revision"
---insertion d'information
INSERT INTO item_trigger ( Date_modif,Type_modif,Nom_table, Nom_champ, Ancienne_info, Nouvelle_info, Nom_usager)
SELECT CURRENT_TIMESTAMP, "M", "item", @NomChamp, @AncienneValeur, @NouvelleValeur, user_name(1)
from inserted 
    END



la vie ne donne pas des cadeaux



Cette discussion est classée dans : table, item, select, from, trigger


Répondre à ce message

Sujets en rapport avec ce message

Génération de graphiques [ par pillsmen ] Bonjour à tous,Mon problème concerne la génération d'un graphique dans un état sous ACCESS.On va commencer par le commencement ^^, je pense qu'un exem besoin d'aide pour un trigger [ par marcolo21 ] Bonjour tous le monde, j'aurai besoin d'aide pour un trigger. Ce trigger a pour but de noté les modifications faite dans un table dans un autre table Select * from * [ par ziffox ] Bonjour à tous, Je cherche a faire une requête qui parcourt toute la base, et qui m'affiche le nom de la table et du champ qui contient une valeur. Requête utilisant un CONCAT dans le from [ par infkb ] Bonjour, je veux faire une requête sur la table test_21 tel que 21 et un id qu'on récupère d'une autre requête SQL puis je le concatène avec la chaîn Trigger qui se déclenche chaque mois [ par youma85 ] Salut tous le monde je suis entrain de réaliser un projet, dans le quel je dois insérer les informations d'une table dans une autre table chaque mois Requète SELECT avec INNER JOIN sur plusieurs tables et des cles manquantes [ par bobarman ] Bonjour, j'ai 5 tables: Une table Fabrications tout en haut, 3 tables filles reliées à cette table Fabrications : Commandes, Formules, ControlesQualit problème sous requête [ par neoscars ] Bonjour Amis Developpeur, j'ai un petit problème sur une requête SELECT * FROM ( SELECT * FROM [TABLE1] WHERE [CHAMP1] NOT IN (SELECT [CHAMP1] FR SubQuery et ou condition de jointure [ par Nicolas___ ] Bonjour, je suis étudiant en info et je dois repasser mon cours de SQL , j'ai donc une petite question à vous demandez (J'y ai déjà répondu, j'aimer Comment faire un select dans une table apres un insert au sein d'une meme transaction [ par cedkat ] Bonjour, Comme décrit dans le titre, je cherche à faire un select dans une table dans laquelle je viens de faire un insert. J'ai actuellement un plan optimisation de la clause WHERE sur des champs dates [ par ThierH ] Bonjour j'ai une table SQL Server (2005) contenant plus de 50000 lignes. Dans chaque ligne, j'ai des données de type datetime, integer, ... Mon applic


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,120 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales