私はSQL Server 2005でこれをやっています。 テーブルがあり、int型の列が1つしかありません。それにcharを挿入することはできません。「ロールバック」と言うことなくロールバックできますか?
これを実行すると、テーブルに1行挿入されます。
これを実行すると、テーブルにゼロ行が挿入されます。したがって、トランザクションは2つのタスクを1つの実行単位にグループ化します。 1つのタスクが失敗すると、トランザクション全体が失敗します。
BEGIN TRANSACTION
INSERT INTO TestTable VALUES(3)
INSERT INTO TestTable VALUES('b')
COMMIT TRANSACTION
私の質問は:私は上記のコードでROLLBACKを持っていないが、それはまだロールバックされ....誰もが、私はこれを理解するのに役立つ可能性があるため、ROLLBACKのトランザクションは無用であるように見えますか?
ステートメントの* none *が失敗したにもかかわらず、変更を取り消したい場合、 'ROLLBACK'は非常に便利です。 :) –
はすべてあなたのコードですか? (またはすべての*関連する*コード) – MilkyWayJoe
@ MilkyWayJoe:はい、これは私のコードです。ちょうど学習のため。 –