SQL Server - transações reverter em erro?
Temos aplicativo cliente que está executando algum SQL em um SQL Server 2005, como o seguinte:
BEGIN TRAN;
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
COMMIT TRAN;
É enviado por um longo comando de string.
Se uma das inserções falhar ou qualquer parte do comando falhar, o SQL Server reverterá a transação? Se não reverter, tenho que enviar um segundo comando para revertê-lo?
Eu posso dar detalhes sobre a API e o idioma que estou usando, mas acho que o SQL Server deve responder da mesma maneira para qualquer idioma.