Les transactions imbriquées dans Sql Server
Imaginez le scénario suivant:
Je suis à l'aide de SQL Server 2005. J'ai une transaction qui appelle, entre autres, SQL, une procédure stockée qui dispose également d'une transaction à l'intérieur. L'extérieur de la transaction échoue parfois et elle est annulée après que la procédure stockée est appelée et validées avec succès.
Ma question est, ne la procédure stockée de l'annulation de la transaction trop?
Vous devez vous connecter pour publier un commentaire.
À une transaction imbriquée, un commit ne pas écrire sur le disque, sauf pour le haut niveau de la transaction. Un rollback, cependant fonctionne quel que soit le niveau de la transaction, donc oui, il va rouler à l'intérieur de la transaction de retour.
Absolument oui, le haut niveau de la transaction sera propriétaire de toutes les modifications de données jusqu'à ce qu'elle soit validée ou annulée.
Cependant, je vous encourage à réfléchir sur le modèle transactionnel. Le plus de ces scénarios existent dans votre système la plus grande de votre exposition à des problèmes de verrouillage. Aussi les dépenses de calcul de la procédure augmente.
Il est remarquable de voir comment souvent, lorsque la rationalisation de SQL, je trouve que les transactions ont été mis en place là où ils ne sont simplement pas nécessaire. Je vous encourage à vous (et à toute personne travaillant avec des transactions) de bien réfléchir à pourquoi vous les utilisez dans chaque contexte et ce qu'il se passerait si la transaction ne sont pas appliquées. Juste mon 2c vaut la peine!
Oui la procédure stockée sera annulée.
Ici est le débit global de votre code:
Acclamations, John
J'ai essayé avec begin tran et de s'engager à l'intérieur de la procédure stockée dire usp_test.
Exec ces sp avec quelques autres de la requête ci-dessous
Lors de l'exécution de la requête ci-dessus nom dans x table doit être 'xxx' pas 'zzz' depuis le premier begin tran rollbacked même le tran sp commettre.
Donc, d'abord begin tran propre les modifications de données.
C'est un article utile pour comprendre les transactions dans SQL Server
il propose un certain nombre de bons exemples et des définitions simples.
SQL-Server-Transactions et de gestion des Erreurs