ROLLBACK TRAN
SPのすべてをロールバックしますか?(別のSPへの呼び出しを含む)
例:
BEGIN TRAN
INSERT INTO (table1)
VALUES (1,'abc')
EXEC InsertTable2
INSERT INTO (table3)
VALUES (1,'abc')
ROLLBACK TRAN
ROLLBACK TRAN
SPのすべてをロールバックしますか?(別のSPへの呼び出しを含む)
例:
BEGIN TRAN
INSERT INTO (table1)
VALUES (1,'abc')
EXEC InsertTable2
INSERT INTO (table3)
VALUES (1,'abc')
ROLLBACK TRAN
msdn から
明示的または暗黙的なトランザクションを、トランザクションの先頭またはトランザクション内のセーブポイントまでロールバックします。ROLLBACK TRANSACTION を使用して、トランザクションの開始時またはセーブポイントまでに行われたすべてのデータ変更を消去できます。また、トランザクションによって保持されているリソースを解放します。
あ、はい
InsertTable2
確かに言うことは不可能の定義を知らずに。そうでない例を次に示します。
CREATE TABLE table1
(
Num int,
String char(3)
)
GO
CREATE PROC InsertTable2
AS
COMMIT;
BEGIN TRAN;
GO
BEGIN TRAN
INSERT INTO table1
VALUES (1,'abc')
EXEC InsertTable2
INSERT INTO table1
VALUES (1,'abc')
ROLLBACK TRAN
GO
SELECT *
FROM table1
GO
DROP TABLE table1
DROP PROC InsertTable2
しかし、正気の定義を仮定すると、答えは「はい」です
はい。それはあなたが上で述べ ROLLBACK
たすべてのものになります。Store Procedure