Forum
Merhaba arkadaşlar;
Create TRIGGER [dbo].[CMS_PrimOran]
ON [dbo].[Prim_Detay]
AFTER INSERT
AS
BEGIN
Declare @Puan int,@Prim Numeric(18,2) ,@ID int,@Yuzde int
SET NOCOUNT ON;
Select @Puan=Puan,@ID=ID,@Yuzde=Yuzde from Inserted
Set @Prim=@Puan * @Yuzde/100
Update Prim_Detay Set Prim=@Prim where ID=@ID
END
Bu şekilde bir trigger yazdım,amacım ise tablomda puan ,yuzde ve prim diye sutunlarım var kayıt eklendikten sonra puanın yüzdesini alıp prim sutununa yazdırmak istiyorum ve bunu yazzdırıyorum ama Sorun int olarak yazıyor yani dönen değer atıyorum 2.7 olması gerekiken direkt 2.0 olarak yazıyor..
Matematiksel işlem yaparken integer değeri integer ile çarpımı integer döndürüyor..ama integer bir değeri decmal ile çarptığımızda sonuc decimal oluyor..Çözüm aşağıdaki gibi..
ALTER TRIGGER [dbo].[CMS_PrimOran]
ON [dbo].[Prim_Detay]
AFTER INSERT
AS
BEGIN
Declare @Puan int,@ID int,@Yuzde decimal(10,2) ,@Sonuc decimal(10,2)
SET NOCOUNT ON;
Select @Puan=Puan,@ID=ID,@Yuzde=Yuzde from Inserted
Set @Sonuc=@Puan * @Yuzde/100
Update Prim_Detay Set Prim=@Sonuc where ID=@ID
END