-------------TRANSACTION------------------
create table Hesaplar
(
HesapID varchar(10),
Bakiye decimal(9,2)
)
--sonra bu
alter table Hesaplar
add constraint kontrol check (Bakiye>=0)
--sonra bunlar
insert into Hesaplar
values ('1111',234)
insert into Hesaplar
values ('2222',34)
--proc oluşturalım
create proc up_Havale
(
@Kimden varchar(10),
@Kime varchar(10),
@Miktar decimal(9,2)
)
as
begin try
begin transaction
update Hesaplar set Bakiye=Bakiye-@Miktar
where HesapID=@Kimden
update Hesaplar
set Bakiye=Bakiye+@Miktar
where HesapID=@Kime
commit --Onayla (işlemlerin hepsini onaylaki geçelilik kazansın)
end try
begin catch
rollback --Geri al
--16 hatanın kullanıcı arafından meydana geldiğini
-- 1 ise 1 kere meydana geldiğini söyler
raiserror('Bakiye yeteriz',16,1)
end catch
select * from Hesaplar
exec up_Havale '2222','1111',34