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 :

probleme Trigger enregistrement en cours


Sujet :

Développement SQL Server

  1. #1
    En attente de confirmation mail
    Inscrit en
    Août 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 84
    Points : 33
    Points
    33
    Par défaut probleme Trigger enregistrement en cours
    salut tout le monde;
    voilà je bloc sur un probleme qui est le suivant :

    j'ai utilisé un TRIGGER qui permet de recalculer a chaque fois le stock, voici le code :
    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
      CREATE TRIGGER [dbo].[TRG_Art_BL] ON [dbo].[Art_BL]
    WITH EXECUTE AS CALLER
    FOR INSERT, UPDATE
    AS
    IF (select prestation from Article as A1 ,
         inserted as V where A1.Ref =v.refart )<>'0'
    BEGIN
    
     update A SET
     A.qt_livree =(Select sum(qt) from art_bl as calc
                    where calc.refart=?)
     
     FROM Article as A inner join inserted as R
     on A.ref=R.refart
     
    end
    GO
     
    end
    mon souci est que comment obtenir la référence de l'article , là où j'est mis un point d'interrogation, c'est à dire l'enregistrement en cours, je ne sais pas s'il existe une variable interne qui a la valeur de l'enregistrement en cours ou bien qui permet d'acceder aux valeur des champs du même enregistrement.
    Merci.

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 141
    Points : 176
    Points
    176
    Par défaut
    Que voulez-vous dire par enregistrement en cours ?

    En cours de modification et/ou ajout ?

    Si c'est le cas, les données modifiées se trouvent dans la table 'inserted'.

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    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 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    Tout votre trigger est syntaxiquement incorrect, à commencer par :

    IF (select prestation from Article as A1 ,
    inserted as V where A1.Ref =v.refart )<>'0'
    Avez vous déjà vu une table (un SELECT ... produit une table) qui soit égale à une valeur scalaire ?

    D'autre part si vous ne nous donnez pas le DDL SQL de vos tables il est impossible de vous répondre !

    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. Réponses: 9
    Dernier message: 26/09/2012, 18h33
  2. Réponses: 7
    Dernier message: 12/01/2005, 11h30
  3. probleme trigger
    Par samourai_alex dans le forum Oracle
    Réponses: 10
    Dernier message: 05/01/2005, 11h37
  4. Réponses: 2
    Dernier message: 10/10/2004, 23h12
  5. Réponses: 7
    Dernier message: 06/10/2004, 22h13

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