次のようなSQL Server 2005でSQLを実行しているクライアントアプリがあります。
BEGIN TRAN;
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
COMMIT TRAN;
1つの長い文字列コマンドによって送信されます。
挿入の1つが失敗した場合、またはコマンドの一部が失敗した場合、SQL Serverはトランザクションをロールバックしますか?ロールバックしない場合は、2番目のコマンドを送信してロールバックする必要がありますか?
使用しているAPIと言語の詳細を指定できますが、SQL Serverはどの言語でも同じように応答するはずです。