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 de mise à jour


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 68
    Points : 40
    Points
    40
    Par défaut Trigger de mise à jour
    Bonjour
    Je souhaite créer un trigger sur la mise à jour ou l'ajout de lignes dans une table tbl_Referentiel_Dossiers.
    Dans ce trigger, j'appelle une procédure stockée en lui passant la clé primaire de l'enregistrement et elle me renvoie une valeur que je stocke dans une colonne de cette même table.

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    USE SouCredImmo
    Go
     
    IF OBJECT_ID('trg_Resume_Emprunteur') IS NOT NULL
    	DROP TRIGGER trg_Resume_Emprunteur 
    	GO
     
    CREATE TRIGGER trg_Resume_Emprunteur
     
    	ON	tbl_Referentiel_Dossiers
    		AFTER UPDATE, INSERT
    	AS
     
    	BEGIN
     
    	DECLARE	@vch_Resultat varchar(300)
     
    	EXECUTE	prc_Formulaire_Dossier_Emplois_Lib1 INSERTED.fld_int_Code_Dossier, @vch_Resultat = @vch_Resultat OUTPUT
     
    	UPDATE	tbl_Referentiel_Dossiers
    	SET	
    		fld_vch_Resume_Emprunteur = (SELECT @vch_Resultat)
    	FROM INSERTED
    	WHERE tbl_Referentiel_Dossiers.fld_int_Code_Dossier = INSERTED.fld_int_Code_Dossier
     
    	END
     
    GO
    J'obtiens un message sibyllin : Syntaxe incorrecte vers '.'.

    Merci d'avance

    Herve Aouate

  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
    21 736
    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 736
    Points : 52 447
    Points
    52 447
    Billets dans le blog
    5
    Par défaut
    Votre trigger est syntaxiquement totalement faux. En effet un trigger ne s'excute qu'une seule fois quelque soit le nombre de ligne impacté.

    Ainsi il ne sera déclenché qu'une seule fois si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE tbl_Referentiel_Dossiers
    SET fld_int_Code_Dossier = 0
    Donc la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXECUTE	prc_Formulaire_Dossier_Emplois_Lib1 INSERTED.fld_int_Code_Dossier, @vch_Resultat = @vch_Resultat OUTPUT
    est incompréhensible car INSERTED.fld_int_Code_Dossier est une colonne d'une table. or une colonne ne peut pas être un paramètre.

    Commencez à apprendre à coder un trigger. Mon site web peut vous y aider :
    http://sqlpro.developpez.com/cours/s...ransactsql/#L5

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

Discussions similaires

  1. TRIGGER de mise à jour sur coordonnées
    Par Qosmio dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 02/06/2010, 17h28
  2. UpdatePanel avec Trigger (Empêcher mise à jour)
    Par Erakis dans le forum ASP.NET
    Réponses: 7
    Dernier message: 21/01/2010, 17h50
  3. Trigger de mise à jour automatique du champ inséré
    Par popovitch130 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 06/08/2008, 10h05
  4. trigger en mise à jour
    Par k-eisti dans le forum PL/SQL
    Réponses: 4
    Dernier message: 17/01/2008, 14h54
  5. triggers insertion, mise à jour, suppression
    Par bibi_forever dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 15/05/2007, 12h22

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