TransactionScope et transactions

Dans mon code C#, je suis en utilisant TransactionScope parce que je a dit de ne pas compter que mon programmeurs sql sera toujours utiliser les transactions et nous sommes responsables et yada yada.

Avoir dit que

Il ressemble TransactionScope objet Rouleaux de retour avant la SqlTransaction? Est-ce possible et si oui quel est la bonne méthodologie pour l'emballage d'une TransactionScope dans une transaction.

Voici le sql test

CREATE PROC ThrowError
AS

BEGIN TRANSACTION --SqlTransaction
SELECT 1/0

IF @@ERROR<> 0
BEGIN
  ROLLBACK TRANSACTION --SqlTransaction
  RETURN -1 
END
ELSE
BEGIN
  COMMIT TRANSACTION --SqlTransaction
  RETURN 0
END

go

DECLARE @RESULT INT

EXEC @RESULT = ThrowError

SELECT @RESULT

Et si je l'exécute j'ai juste le diviser par 0 et renvoie -1

Appeler du code C# je obtenir un supplément de message d'erreur

Erreur de division par zéro rencontrés.
nombre de Transactions après EXECUTE indique qu'un COMMIT ou ROLLBACK TRANSACTION essage est manquant. Précédent count = 1, compteur = 0.

Si je donne de la transaction sql un nom, puis

Ne peut pas revenir SqlTransaction.
Aucune transaction ou point d'enregistrement de ce nom a été trouvé.
Nombre de transactions après EXECUTE indique qu'un COMMIT ou ROLLBACK
Déclaration de la TRANSACTION est manquant. Précédent count = 1, compteur = 2.

à certains moments, il semble que le comte monte, jusqu'à ce que l'application soit complètement sorti de l'

Le c# est juste

        using (TransactionScope scope = new TransactionScope())
        {
             ... Execute Sql 

             scope.Commit()
         }

EDIT:

Le code sql doit travailler pour 2000 et 2005

source d'informationauteur Mike