Bonjour à tous,

J'ai un problème de compréhension au niveau de l’exécution d'une transaction.

Je vous montre les deux scripts que j'ai exécuté :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
BEGIN TRANSACTION                           -- je commence ma transaction
 
CREATE TABLE TEST(ID int NOT NULL)     -- je créé une table
DROP FROM TOTO WHERE titi = 4            -- erreur de syntaxe
 
IF (@@error <> 0)
   ROLLBACK TRANSACTION
ELSE
   COMMIT TRANSACTION
 
-- ma table TEST n'a pas été créée.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
BEGIN TRANSACTION                               -- je commence ma transaction
 
CREATE TABLE TEST(ID int NOT NULL)        -- je créé une table
DELETE FROM TOTO WHERE titi = 4            -- je veux supprimer les informations d'une table qui n'existe pas
 
IF (@@error <> 0)
   ROLLBACK TRANSACTION
ELSE
   COMMIT TRANSACTION
END
 
-- la table TEST a bien été créée.
Je ne comprends pas pourquoi dans l'exemple 1 la table n'a pas été créée alors que dans l’exemple 2 la table a bien été créée.

Merci