Tenemos una aplicación cliente que ejecuta algunos SQL en un SQL Server 2005 como el siguiente:
BEGIN TRAN;
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
COMMIT TRAN;
Se envía mediante un comando de cadena larga.
Si falla una de las inserciones, o falla alguna parte del comando, ¿SQL Server revierte la transacción? Si no se revierte, ¿tengo que enviar un segundo comando para revertirlo?
Puedo dar detalles sobre la API y el idioma que estoy usando, pero creo que SQL Server debería responder igual para cualquier idioma.