Bonjour,


J'ai un serveur et de 0 à N serveurs liés ; je crée un TRIGGER sur mon serveur principal :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ALTER TRIGGER [dbo].[Trigger_T_BADGE]
   ON  [dbo].[T_BADGE]
 
   AFTER  INSERT
AS 
DECLARE @SQL Nvarchar(4000)
 
BEGIN
SET @SQL = N'INSERT INTO PCBE.GDA.dbo.T_badge values (170,1001,''2014/02/01'',''2013/02/01'',''2013/02/02'',1,2,3,4,5)'
--SET @SQL = N'SELECT * from PCBE.GDA.dbo.T_BADGE'
 
SET XACT_ABORT ON
 
		EXEC sp_executeSQL @SQL	
 
END
lorsque je fait un SIMPLE "select" sur mon serveur lié (PCBE) cela marche tres bien ! , mais dès lors que je demande de faire un "INSERT" je me trouve avec le message d erreur suivant :

Le fournisseur OLE DB "SQLNCLI10" du serveur lié "PCBE" a retourné le message "Aucune transaction n'est active.".
Msg*7391, Niveau*16, État*2, Ligne*1
L'opération n'a pas pu être effectuée, car le fournisseur OLE DB "SQLNCLI10" du serveur lié "PCBE" n'a pas réussi à démarrer une transaction distribuée.
J'ai bien activé MSDTC sur les deux postes (un tourne sous Windows XP SP3 et l'autre sous Windows Server 2008 R2).

PS : Je précise que si je lance ma requete "seule" sans passer par le trigger elle fonctionne très bien.

Si quelqu'un a une solution je suis preneur

Merci d'avance.