Requête SQL qui va rollback si des déclarations échoue

Je voudrais écrire un script SQL qui exécute plusieurs instructions SQL individuelles; si l'une de ces déclarations d'échouer, j'aimerais reprendre l'ensemble de la transaction. Donc, quelque chose comme:

BEGIN TRANSACTION

insert into TestTable values (1)
insert into TestTable values (2)
insert into TestTabe values (3)

--if any of the statements fail
ROLLBACK
--else
COMMIT

C'est pour MS SQL 2008. Est-ce que je peux faire pour accomplir cette? Peut-être une sorte de manipulation d'exception?

Je me rends compte dans mon exemple, j'ai pu inspecter le TestTable de ces valeurs et de déterminer si les états échec de cette façon. Mais en réalité, my SQL sera beaucoup plus complexe, et je serais plutôt abstrait moi-même de savoir ce qu'est le SQL a été fait.

OriginalL'auteur manu08 | 2010-02-10