📜  T-SQL-事务(1)

📅  最后修改于: 2023-12-03 15:05:27.669000             🧑  作者: Mango

T-SQL事务

T-SQL 是指 Transact-SQL,它是 Microsoft SQL Server 数据库系统的一种 SQL 方言。在 T-SQL 中,可以使用事务来管理数据库中的数据操作。

一个事务是由一组 SQL 操作组成的逻辑单元。这些操作要么全部执行成功,要么全部失败回滚。如果其中一个操作失败了,所有的操作都将被回滚,数据库状态将恢复到事务执行前的状态。

开始一个事务

可以使用 BEGIN TRANSACTION 语句开始一个事务。

BEGIN TRANSACTION
提交事务

可以使用 COMMIT TRANSACTION 语句提交一个事务。如果所有操作都成功了,那么事务就会提交。这些操作将被永久保存到数据库中。

COMMIT TRANSACTION
回滚事务

可以使用 ROLLBACK TRANSACTION 语句回滚一个事务。如果其中一个操作失败了,那么事务就会被回滚。所有的操作将被取消,数据库状态将恢复到事务执行前的状态。

ROLLBACK TRANSACTION
设置事务保存点

可以使用 SAVE TRANSACTION 语句设置事务保存点。如果事务需要在某个时间点回滚到之前的状态,可以使用保存点来完成。

SAVE TRANSACTION SavePointName
回滚至保存点

可以使用 ROLLBACK TRANSACTION 语句加上保存点的名称来回滚至保存点。

ROLLBACK TRANSACTION SavePointName
控制事务的处理方式

可以使用 SET XACT_ABORT 语句来控制事务的处理方式。如果设置为 ON,则一旦出现任何错误,事务就会回滚。如果设置为 OFF,则错误仅仅是一个警告,但不会导致事务回滚。

SET XACT_ABORT ON
使用事务的例子

以下是一个使用事务的例子。假设我们要将从 Table1 中删除与 Table2 中相同的记录,然后再将 Table2 中的所有记录插入到 Table1 中。如果其中任何一步出现错误,所有的操作都将被回滚。

BEGIN TRANSACTION
  DELETE FROM Table1 WHERE Id IN (SELECT Id FROM Table2)
  INSERT INTO Table1 (Id, Name) SELECT Id, Name FROM Table2
COMMIT TRANSACTION