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 :

Imbrication des transactions et déploiement des proc


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2018
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Octobre 2018
    Messages : 87
    Par défaut Imbrication des transactions et déploiement des proc
    Bonjour,
    j'ai développé deux procédures stockés pour la génération des documents de ventes de d'achat dans deux bases différentes (une base pour chaque société) :
    - une procédure pour insérer l'entête de document
    - une procédure pour insérer une ligne de document
    Avec mes deux bases de données
    - vente en détail
    - vente en gros

    La société de vente en détail ne gère pas de stock, donc pour chque vente pour ses clients, un achat auprès de la société gros doit être effectué.
    Les deux procédures sont déployés dans les deux bases, et l'appel principal des 4 procédures se fait a partir de la base de la société détail dans une 5ème procédure.
    - mon premier problème est que lorsque une des procédures déclenche une erreur le traitement se continue sans arrêt dans la proc globale : est ce que je doit fait du try catch dans la proc qui fait appel aux autres 4 procedures ?
    - le deuxième problèmes, actuellement lors de la modification dans l'une des procédures je dois la déployée dans 16 bases (j'ai 8 couple de société et une base par société), existe-t-il un moyen plus facile pour centraliser la procédure (peut-être je dois passer par sql dynamique et faire passé le nom de la base en paramètre ?)

    Merci par avance

  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
    22 010
    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 : 22 010
    Billets dans le blog
    6
    Par défaut
    Une transaction interbase n'a aucun sens, car l'unité de traitement de l'intégrité s’arrête à la frontière de la base. Par conséquent, la validation ou l'annulation d'une transaction effectuant des mises à jours dans différentes bases risque de casser l'intégrité de la base.

    Pour résoudre ce problème, deux solutions :
    • soit effectuer une transaction distribuée (complexe et casse gueule) : activer MS DTC et commencer la transaction par BEGIN DISTRIBUTED TRANSACTION..;
    • soit utiliser Service broker qui est fait pour cela.



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

  3. #3
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2018
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Octobre 2018
    Messages : 87
    Par défaut
    Avec service broker, je peux rollbacker l'insertion dans la première base si l'insertion dans la deuxième échoue ?

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    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 : 22 010
    Billets dans le blog
    6
    Par défaut
    Non, mais vous pouvez savoir ou vous en êtes dans la base source par rapport au actions cible, car le système permet le dialogue.

    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. Apropos des Transactions au sein d'un Stored Procedure
    Par Sarbacane dans le forum Connexion aux bases de données
    Réponses: 6
    Dernier message: 16/11/2004, 08h21
  2. Automatisation de la purge du journal des transactions
    Par Nathan dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 30/09/2004, 08h05
  3. Annuler des transactions
    Par sgire dans le forum ASP
    Réponses: 2
    Dernier message: 04/05/2004, 09h31
  4. vider le journal des transactions
    Par coucoucmoi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/05/2004, 09h21
  5. gestion des transactions
    Par viny dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/03/2004, 21h53

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