trigger insert entre deux serveurs

trigger insert entre deux serveurs - SQL/NoSQL - Programmation

Marsh Posté le 26-05-2004 à 17:48:18    

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. :)  

Reply

Marsh Posté le 26-05-2004 à 17:48:18   

Reply

Marsh Posté le 27-05-2004 à 12:09:23    

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 !!!  

Reply

Marsh Posté le 06-10-2004 à 09:21:51    

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed