SQL Server - transakcje wycofują się po błędzie?

Mamy aplikację kliencką, która uruchamia SQL na SQL Server 2005, na przykład:

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

Jest wysyłany za pomocą jednego długiego ciągu znaków.

Jeśli jeden z wkładek nie powiedzie się lub jakakolwiek część polecenia nie powiedzie się, czy SQL Server wycofuje transakcję? Jeśli się nie wycofuje, czy muszę wysłać drugie polecenie, aby je wycofać?

Mogę podać szczegóły dotyczące interfejsu API i języka, którego używam, ale sądzę, że SQL Server powinien odpowiadać tak samo dla każdego języka.

questionAnswers(5)

yourAnswerToTheQuestion