*/
use tempdb ;
go
create table dbo.SavingsAccount ( AccountID int not null, Balance money not null ) ;
go
create table dbo.CheckingAccount ( AccountID int not null, Balance money not null ) ;
go
insert into dbo.SavingsAccount ( AccountID, Balance ) values ( 1001, 500.00 ) ;
insert into dbo.CheckingAccount ( AccountID, Balance ) values ( 1001, 100.00 ) ;
/* Code 1.
*/
use tempdb ;
begin transaction ;
update dbo.CheckingAccount
set Balance = Balance - 100
where AccountID = 1001 ;
waitfor delay '0:00:10' ;
update dbo.SavingsAccount
set Balance = Balance + 100
where AccountID = 1001 ;
commit ;
/* Code 2.
*/
use tempdb ;
begin transaction ;
update dbo.SavingsAccount
set Balance = Balance - 100
where AccountID = 1001 ;
update dbo.CheckingAccount
set Balance = Balance + 100
where AccountID = 1001 ;
commit ;
/* Cleanup.
*/
use tempdb ;
go
if object_id( N'dbo.SavingsAccount', N'u' ) is not null
drop table dbo.SavingsAccount ;
go
if object_id( N'dbo.CheckingAccount', N'u' ) is not null
drop table dbo.CheckingAccount ;
go