Transaction

-------------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