事务和并发性
适用于: .NET Framework .NET .NET Standard
事务由作为包执行的单个命令或一组命令组成。 通过事务可以将多个操合并为单个工作单元。 如果在事务中的某一点发生故障,则所有更新都可以回滚到其事务前状态。
事务必须符合 ACID 属性(原子性、一致性、隔离和持久性)才能保证数据的一致性。 大多数关系数据库系统(例如 Microsoft SQL Server)都可在客户端应用程序执行更新、插入或删除操作时为事务提供锁定、日志记录和事务管理功能,以此来支持事务。
备注
如果锁定持续时间过长,则涉及多个资源的事务可能会降低并发性。 因此,事务应尽量保持简短。
如果一个事务涉及同一个数据库或服务器中的多个表,则存储过程中的显式事务通常可以更好地执行。 您可以通过使用 Transact-SQL BEGIN TRANSACTION
、COMMIT TRANSACTION
和 ROLLBACK TRANSACTION
语句在 SQL Server 存储过程中创建事务。 有关详细信息,请参阅 SQL Server 联机丛书。
涉及不同资源管理器的事务(如 SQL Server 和 Oracle 之间的事务)需要分布式事务。
在本节中
本地事务
演示如何对数据库执行事务。
分布式事务
描述如何在 ADO.NET 中执行分布式事务。
System.Transactions 与 SQL Server 的集成
说明 System.Transactions 与 SQL Server 集成以使用分布式事务。
乐观并发 介绍乐观并发和保守式并发,以及如何测试并发冲突。