高级数据库编程与ASP.NET Web应用开发
1. 高级数据库编程中的事务处理
在数据库编程中,如今的数据库需要处理多个用户和程序同时访问的情况,每个用户或程序都可能在数据库中运行自己的事务。数据库软件必须满足这些并发事务的需求,同时维护数据库表中数据行的完整性。我们可以控制事务之间的隔离级别。
在高级数据库编程中,使用SQL Server和ADO.NET可以实现高级事务控制。例如,能够设置保存点,将事务回滚到该保存点,以及设置事务隔离级别。同时,我们还需要了解SQL Server锁,因为事务之间可能会出现阻塞和死锁的情况。
有一个程序展示了两个事务的交错更新操作。第二个事务会将 CompanyName
设置为 Alfreds Futterkiste
。该程序使用 SET DEADLOCK_PRIORITY LOW
命令,表明在发生死锁时第二个事务将被回滚。程序的输出如下:
Setting CompanyName to 'Widgets Inc.' for row with CustomerID of ALFKI using t1Command
Number of rows updated = 1
Setting ProductName to 'Widget' for the row with ProductID of 1 using t2Command
Number of rows updated = 1
Setting ProductName to 'Chai' for the row with ProductID of 1 using t1Co