Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
842 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  trigger insert entre deux serveurs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

trigger insert entre deux serveurs

n°740466
shabata
petit deviendra grand
Posté le 26-05-2004 à 17:48:18  profilanswer
 

Bonjour,
j'utilise MS Server et deux serveurs. Je suis entrain de faire des echanges de données entre les bases de données de ces deux serveurs.
Je les ai déclarés "linked servers".
Dans l'un de mes serveurs (A), j'ai paramétré un trigger insert sur une table T1. Ce trigger a pour objet de prendre qques champs qui viennent d'être insérés dans T1, et de les insérer dans une table T2 de mon autre serveur(B).  
Lorsque je fais des essais, il y a une erreur :  

Code :
  1. ole/db provider returned message:Impossible de démarrer d'autres transactions pour cette session


Le problème vient du fait que j'attaque un serveur à partir d'un autre, car si dans mon trigger j'insère les champs dans une table du même serveur, il n'y a pas de problème.....
 
Je pense avoir pourtant bien configuré mon "liage de serveurs". D'ailleurs je réussi à faire des insert dans le serveur A à partir d'une procédure stockée du serveur B (et vice-versa).
Je suis pommé.... :??:  
si qqun a compris et a une solution je lui serais reconnaissant de ma la partager. :)  

mood
Publicité
Posté le 26-05-2004 à 17:48:18  profilanswer
 

n°741370
shabata
petit deviendra grand
Posté le 27-05-2004 à 12:09:23  profilanswer
 

J'ai finalement trouvé la solution. Pour ceux que ça intéresse :  
J'ai coché dans les propriétés de mes deux serveurs liés l'option : "Appliquer des transactions distribuées" dans l'onglet "Connexions"
Puis, j'ai ajouté "SET XACT_ABORT ON" au début de mon trigger.  
 
mon trigger :  

Code :
  1. CREATE TRIGGER [triggeressai] ON [BERTRAND].[AFFAIRE_ACTION]
  2. FOR INSERT
  3. AS
  4. BEGIN
  5. DECLARE
  6. @nor varchar(15), @noaff varchar(15), @date datetime, @montant numeric, @marge numeric
  7. SET XACT_ABORT ON
  8. SET @nor=(SELECT NOR FROM Inserted)
  9. SET @noaff=(SELECT NAFF FROM Inserted)
  10. SET @date=(SELECT DATE_ACTION FROM Inserted)
  11. SET @montant=(SELECT MONTANT FROM Inserted)
  12. SET @marge=(SELECT MARGE FROM Inserted)
  13. INSERT INTO [SERVEURWEB].[DEMO_GESTION].[dbo].[AFFAIRE_ACTION]
  14. VALUES(@nor,@noaff,'BC',@date,@montant,@marge)
  15. SET XACT_ABORT OFF
  16. END


 
 
Désormais, ça marche !!!  

n°865793
le_scrameu​stache
Posté le 06-10-2004 à 09:21:51  profilanswer
 

j'ai le même problème que toi, mais je n'arrive pas à configurer mon serveur lié pour qu'il accepte les transactions distribuées. Comment as tu fait?
 
Merci d'avance


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  trigger insert entre deux serveurs

 

Sujets relatifs
JDBC PostGreSQL, insertions de PL/PGSQL trigger et fonction marche pas[ORACLE]Question trigger before insert : comment ne pas insérer ?
Problème de trigger (BdD et trigger présents)[SQL] Erreur incompréhensible (insert into)
[JDBC] Problème générer un INSERThelp des noms de serveurs gratuit please
serveur de serveurs ?[ORACLE] Trigger bien compilé qui ne marche pas bien
[ORACLE] Trigger : Erreur "mutating table" 
Plus de sujets relatifs à : trigger insert entre deux serveurs


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR