--
--21.1.2节示例
--
启用事务
CREATE TABLE t1 --在启用事务之前先创建好表t1
(
c1 INT NOT NULL
)
GO
BEGIN TRAN trans1 --启用事务trans1
INSERT INTO t1 (c1)
VALUES (100)
COMMIT TRAN trans1
回滚事务
BEGIN TRAN trans2 --开启事务2
INSERT INTO t1 (c1)
VALUES (50)
--以下回滚事务
ROLLBACK TRAN trans2
--
--21.1.3节示例
--
嵌套事务
SELECT @@TRANCOUNT --输出0
BEGIN TRAN A
SELECT @@TRANCOUNT --输出1
BEGIN TRAN B
SELECT @@TRANCOUNT --输出2
COMMIT TRAN B
SELECT @@TRANCOUNT --输出1
BEGIN TRAN C
SELECT @@TRANCOUNT --输出2
ROLLBACK
SELECT @@TRANCOUNT --输出0
COMMIT TRAN A --这里会报错,因为A事务已经在前面回滚
--
--21.1.4节示例
--
嵌套事务中使用事务保存点
SELECT @@TRANCOUNT --输出0
BEGIN TRAN A
SELECT @@TRANCOUNT --输出1
BEGIN TRAN B
SELECT @@TRANCOUNT --输出2
COMMIT TRAN B
SELECT @@TRANCOUNT --输出1
SAVE TRAN C
SELECT @@TRANCOUNT --输出1,因为SAVE TRAN不增加@@TRANCOUNT值
ROLLBACK TRAN C
SELECT @@TRANCOUNT --输出1
COMMIT TRAN A
SELECT @@TRANCOUNT --输出0