SQL Server - transactions revenir sur l'erreur?

Nous avons application client qui exécute SQL sur un Serveur SQL server 2005, telles que les suivantes:

BEGIN TRAN;
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
COMMIT TRAN;

Il est envoyé par une longue chaîne de commandement.

Si l'un des inserts d'échouer, de tout ou partie de la commande échoue, SQL Server annuler la transaction? Si ce n'est pas la restauration, dois-je envoyer une deuxième commande pour le restaurer?

Je peux donner des détails au sujet de l'api et de la langue que j'utilise, mais je pense que SQL Serveur doit répondre la même chose pour n'importe quelle langue.