Bonjour à tous,

Je souhaite créer un trigger qui après l'insertion d'une ligne dans une table, me lance un exécutable.

trigger:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
CREATE TRIGGER [dbo].[trig_after_ins_atm]
  ON [dbo].[maTable]
AFTER INSERT
AS 
	DECLARE @cmd VARCHAR(500)
	SELECT @cmd = 'd:\MonAppli.exe'
 
	exec master..xp_cmdshell @cmd
GO
Cet exe a pour but de venir récupérer cette ligne et faire des mises à jour dans une autre base de donnée.

Le problème est que lorsque je fais un insert dans cette table, j'obtiens le message suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Unhandled Exception: System.Data.SqlClient.SqlException: Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.

Lorsque je lance la commande
Code : Sélectionner tout - Visualiser dans une fenêtre à part
exec master..xp_cmdshell
à la main, ca fonctionne bien.

Quelqu'un peut'il me dire pourquoi cela ne fonctionne pas? s'il y a un moyen de corriger cela?


PS: pour info, il m'est impossible d'utiliser les linked server. La base de donnée en face n'acceptant pas les transactions distribuées !!!

Base de donnée SQL SERVER 2008