|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : mai 2007 Messages : 194 ![]() |
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 :
Le problème est que lorsque je fais un insert dans cette table, j'obtiens le message suivant: Code :
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 à 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 |
||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 953 ![]() |
1) lorsque vous êtes dans un trigger vous êtes à l'intérieur de la transaction INSERT UPDATE ou DELETE. En faisant un appel externe, vous augmentez la durée de la transaction et continuez de verrouiller là ou les tables.
2) effectivement c'est donc une transaction distribuée que vous tentez de lancer de fait 3) vous pouvez commiter préventivement MAIS : c'est une absurdité que de lancer un exécutable dans un trigger. Ce que vous tnetez de aire devrait être fait de manière synchrone ! A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : mai 2007 Messages : 194 ![]() |
Merci pour votre réponse.
Le problème est qu'il ne m'est pas possible d'utiliser les linked server. Sinon, tout passerai par la et çà serait bien plus efficace. Avez vous une autre solution? |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 953 ![]() |
Non, il n'y a pas d'autre solution.... sauf à implémenter autre chose qu'un trigger et en mode asynchrone.
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#5 |
![]() ![]() ![]() |
Si vous insitez, merci d'activer la fonctionalité dans l'outils de configuration de la surface d'expositions.
__________________
Découvrez la FAQ de MS SQL Server. La chance accorde ses faveurs aux esprits avertis ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com