2009-01-20 8 views
0

J'ai besoin d'utiliser DbTransactions (sur une seule base de données), mais je ne suis pas sûr de la façon de m'assurer qu'il continuera à fonctionner quand je me déploierai dans l'environnement de production.Les transactions sont-elles autorisées par défaut dans SQLServer?

Quelles sont les conditions requises pour qu'une application puisse utiliser SQL DbTransactions? Sont-ils autorisés par défaut dans SQL Server (et quel est le problème avec MSDTC)?

Répondre

7

Oui, les transactions sont activées par défaut - Je ne pense pas que ce soit quelque chose que vous pouvez désactiver. Chaque fois que vous exécutez une requête, elle s'exécute probablement en tant que transaction implicite, autocommit, sauf indication contraire.

MSDTC entre en jeu si vous exécutez des transactions distribuées. Je l'éviterais si tu le pouvais. Cet aspect peut être désactivé. Si c'est ce que vous utilisez, vous devrez vous assurer qu'il est configuré sur le système de destination. L'utilisation de l'objet DBTransaction pour des requêtes ou des transactions simples et successives au sein de procédures stockées n'aura pas besoin de MSDTC.

+0

Pour éviter MSDTC – kemiller2002

+0

Pas toujours facile lorsque votre application est répartie sur plusieurs serveurs. (Vous l'avez toujours géré jusqu'à présent, mais cela a tendance à être pénible.) – MatBailie

2

En plus de ce que Michael a dit,

Il y a des transactions explicites et implicites, si vous ne commencez pas à une transaction explicite SQL Server démarre une transaction implicite pour vous, cela est nécessaire pour le rendre ACID (atomicité, Consistance, isolation, durabilité)

+0

pouvez-vous fournir un exemple d'un cas où une transaction implicite est démarrée par SQL Server? – JohnIdol

+0

Exécutez n'importe quelle requête sans démarrer manuellement une transaction et elle s'exécutera elle-même, au sein d'une transaction implicite. –

Questions connexes