2010-01-08 6 views
0

Je rencontre un problème avec un déclencheur dans SQL Server 2005, j'ai créé le déclencheur et je l'ai testé en insérant manuellement des lignes et cela fonctionne très bien, mais j'appelle une procédure stockée de L'application web aC# et les déclencheurs ne sont pas déclenchés, donc j'ai pris les mêmes données insérées depuis l'application web, effacé cette ligne et réinsérée manuellement et le déclencheur a fonctionné de cette façon, mais il ne fonctionne plus à partir du web. application.Problème avec le déclencheur dans SQL Server 2005

Un conseil?

Merci d'avance.

Albert

+2

Vous devez publier le code car il doit y avoir quelque chose d'autre. – duckworth

+1

Est-ce que votre procédure stockée désactiver les déclencheurs avant que cela fonctionne? –

+0

non il ne désactive pas les déclencheurs, j'ai oublié de mentionner que le déclencheur tOrder insère l'enregistrement dans la table OrderEx, donc table OrderEx lui-même a un autre déclencheur tOrderEx qui insère un enregistrement dans la table OrderInfo, pas sûr si cela doit faire quelque chose avec le problème – Albert

Répondre

0

Vous devriez, en général, évitez d'utiliser des déclencheurs imbriqués, et si vous pouvez les éviter alltogether, par tous les moyens le faire. Ils sont difficiles à déboguer, ne sont pas "visibles" par les autres développeurs (ce qui pourrait causer des problèmes logiques dans le futur), et peuvent causer des problèmes de performances sous charge.

Voir cet article: Why use triggers in Microsoft SQL Server?

Évitez d'utiliser des déclencheurs imbriqués Par défaut, si un déclencheur change autres tables, les déclencheurs déclarés pour ces tables ne sont pas lancés. L'option de serveur "autoriser les déclencheurs imbriqués" définit les bases de données comme ayant le comportement opposé . Les déclencheurs sont imbriqués lorsqu'un déclencheur exécute une action qui initie un autre déclencheur, , qui peut déclencher un autre déclencheur et ainsi de suite. Les déclencheurs peuvent être imbriqués jusqu'à 32 Il est très difficile de suivre la logique des triggers imbriqués et ils peuvent affecter les performances.

0

Au lieu des déclencheurs, utilisez l'instruction d'insertion directe de votre application Web. De cette façon, il serait plus facile de surveiller et de déboguer.

Questions connexes