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 sur table en INSERT


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 5
    Par défaut Trigger sur table en INSERT
    Bonjour,

    J'essaye de crééer un TRIGGER sur une table qui opère dés qu'un INSERT est établie. Ce trigger devrait exporter une zone de la ligne inséré vers un fichier XML pour l'envoyer vers un système tiers.
    Seulement voila je n'ai pas d'expérience avec des trigger et pour l'XML je connais le FOR XML (auto, raw ou explicit) mais je ne sais pas comment l'envoyer vers un serveur...
    Si qq aurait un exemple dans ces bases sur lequel je pourrais me baser ce serait sympa..
    MERCI

  2. #2
    Membre à l'essai
    Inscrit en
    Septembre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 5
    Par défaut version
    J'utilise SQL 2005, j'avais oublié de le mentionner

  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 998
    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 998
    Billets dans le blog
    6
    Par défaut
    Le mieux serait d'utiliser Service Broker.
    Lire l'article que j'ai écrit à ce sujet : http://blog.developpez.com/sqlpro/p7...ervice-broker/

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

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 5
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Le mieux serait d'utiliser Service Broker.
    Lire l'article que j'ai écrit à ce sujet : http://blog.developpez.com/sqlpro/p7...ervice-broker/

    A +
    Cela me semble bien compliqué pour mon petit besoin ?
    Pourquoi le trigger ne peut-il pas faire l'affaire ?

  5. #5
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Un trigger est exécuté de façon synchrone puisqu'il fait partie de la transaction qui l'a déclenché, ce qui peut ralentir les transactions qui ont lieu sur cette table.
    L'avantage de Service Broker c'est que vous pouvez établir un échange de message entre deux serveurs SQL et les traiter de façon asynchrone.

    J'aurai plutôt suggéré un package SSIS (fonctionnalité ETL de SQL Server) puisqu'on ne cherche pas à communiquer des données entre deux serveur SQL.

    @++

  6. #6
    Membre à l'essai
    Inscrit en
    Septembre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 5
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Bonjour,

    Un trigger est exécuté de façon synchrone puisqu'il fait partie de la transaction qui l'a déclenché, ce qui peut ralentir les transactions qui ont lieu sur cette table.
    L'avantage de Service Broker c'est que vous pouvez établir un échange de message entre deux serveurs SQL et les traiter de façon asynchrone.

    J'aurai plutôt suggéré un package SSIS (fonctionnalité ETL de SQL Server) puisqu'on ne cherche pas à communiquer des données entre deux serveur SQL.

    @++
    Ok je comprend bien l'avantage de asynchrone mais comme la table est utilisé comme boite au lettre cela ne devrait pas poser de problème. Crééer un package ssis a pour inconvéniant que je dois ensuite le programmer via sql agent. Dans le meilleur cas le job tournera seulement chaque minute ce qui est trop tard. Dés que un insert est fait dans la table il faudrai qu'un XML soit droppé sur un serveur FTP..

Discussions similaires

  1. Trigger sur table de log pour statistiques
    Par kalagann dans le forum MySQL
    Réponses: 1
    Dernier message: 26/11/2009, 22h09
  2. Réponses: 1
    Dernier message: 08/07/2009, 09h37
  3. Trigger sur tables ou vues
    Par Mothership dans le forum Administration
    Réponses: 11
    Dernier message: 17/06/2009, 13h38
  4. problème Trigger sur table unique
    Par speedev dans le forum SQL Procédural
    Réponses: 11
    Dernier message: 21/01/2009, 12h09
  5. Trigger sur Update et Insert
    Par Jérôme Lambert dans le forum Développement
    Réponses: 2
    Dernier message: 11/12/2006, 13h52

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