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 For Insert Update


Sujet :

Développement SQL Server

  1. #1
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut Trigger For Insert Update
    Salut tout le monde,

    Je me pose une question sur l'utilisation d'un trigger de type Insert Update; notamment sur l'ordre des lignes dans les tables inserted et deleted.
    Comment est il possible de s'assurer qu'on dépile les lignes dans le bon ordre (l'ordre d'exécution dans la transaction) dans le trigger (surtout que SQLServer est ensembliste)?

    Merci d'avance.

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Si votre transaction contient plusieurs requêtes d'insertion, alors le trigger se déclenchera à chacune de ces requêtes.

    si en revanche vous insérez plusieurs lignes en une seule requête, alors par définition il n'y a pas d'ordre. Si vous en avez besoin, c'est à vous de le définir à l'aide d'une colonne (par exemple, une date/heure)

  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 768
    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 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par rvzip64 Voir le message
    Salut tout le monde,

    Je me pose une question sur l'utilisation d'un trigger de type Insert Update; notamment sur l'ordre des lignes dans les tables inserted et deleted.
    Comment est il possible de s'assurer qu'on dépile les lignes dans le bon ordre (l'ordre d'exécution dans la transaction) dans le trigger (surtout que SQLServer est ensembliste)?

    Merci d'avance.
    Votre question est stupide ! En effet il n'y a pas d'ordre des lignes dans une table. Les tables sont des ensembles. Par exemple un sac de billes est un ensemble... Pouvez-vous me dire dans ce sac de billes quelle est la première ou la dernière ? Cette question n'a aucun sens, et si vous avez basé vos traitements sur un hypothétique ordre naturel vous êtes mort !
    Si en revanche, vous avez besoin d'effectuer certaines opérations dans un certain ordre, alors il vous faut recourir aux fonctions d'ordonnancement (RANK, DENSE_RANK, ROW_NUMBER...) une sous classe de la classe des fonctions de fenêtrage. À me lire : http://sqlpro.developpez.com/article...clause-window/

    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 simple INSERT/UPDATE
    Par castorcharly dans le forum Développement
    Réponses: 6
    Dernier message: 12/11/2010, 14h54
  2. création d'un seul trigger for insert, delete, update
    Par gilardino dans le forum Développement
    Réponses: 2
    Dernier message: 23/04/2009, 01h41
  3. TRIGGER de type "for insert,update"
    Par samworld dans le forum Développement
    Réponses: 3
    Dernier message: 04/07/2007, 19h20
  4. [trigger] insert update et delete
    Par kooljy dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 13/07/2006, 08h56
  5. TRIGGER avec inserted + UPDATE sur INSERTED
    Par shaka84 dans le forum Développement
    Réponses: 3
    Dernier message: 12/04/2006, 10h26

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