Hayırlı akşamlar sql trigger ile ilgili bir sorun için uğraşıyorum.
resimde görünen tabloda toplam*
14 adet kayıt var.
tablonun triggers de* tanımlı kod:
USE [CINAR2022]
GO
/****** Object: *Trigger [dbo].[miktar_sil] * *Script Date: 2.07.2022 20:06:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[miktar_sil] ON [dbo].[StokHareket]
WITH EXECUTE AS CALLER
FOR DELETE
AS
begin
declare @miktar decimal(8,3)
declare @urunid integer
declare @fistur char
declare @silinen_id integer
select *@miktar=ST_MIKTAR,@urunid=ST_STOKID,@fistur=ST_FISTURU,@silinen_id=ST_ID from deleted
update stok set STOK_TOP_GRN=STOK_TOP_GRN-@miktar,STOK_TOP_BKY=STOK_TOP_BKY-@miktar where STOK_ID=@urunid and @fistur='G' -- fis eklendi G artır C ise eksilt
update stok set STOK_TOP_CKN=STOK_TOP_CKN-@miktar,STOK_TOP_BKY=STOK_TOP_BKY+@miktar where STOK_ID=@urunid and @fistur='C'
insert into TempDB values(@urunid ,@fistur,@silinen_id,'Test') // TempDB dosyası gecici ekledim kaç kez gelindi bilgisi için.
end
Bu komutla**DELETE FROM StokHareket where ST_IMA_NO=2; tablodaki toplam 14 kayıt siliniyor hata yok.
14 kayıt silinmesine rağmen trigger sadece 1 kez çalışıyor* ve sadece bir stok güncelleniyor.
where karşılaştırmasında hata yok*
TempDB sadece 1*kayıt atıyor.
*
sql management* da message aşağıdaki gibi
(0 row(s) affected)
(1 row(s) affected)
(1 row(s) affected)
(14 row(s) affected)**
Konu hakkında yardım bekliyorum.
sql_liste.png (Dosya Boyutu: 30,52 KB / İndirme Sayısı: 164)
sql2.png (Dosya Boyutu: 9,7 KB / İndirme Sayısı: 164)
resimde görünen tabloda toplam*
14 adet kayıt var.
tablonun triggers de* tanımlı kod:
USE [CINAR2022]
GO
/****** Object: *Trigger [dbo].[miktar_sil] * *Script Date: 2.07.2022 20:06:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[miktar_sil] ON [dbo].[StokHareket]
WITH EXECUTE AS CALLER
FOR DELETE
AS
begin
declare @miktar decimal(8,3)
declare @urunid integer
declare @fistur char
declare @silinen_id integer
select *@miktar=ST_MIKTAR,@urunid=ST_STOKID,@fistur=ST_FISTURU,@silinen_id=ST_ID from deleted
update stok set STOK_TOP_GRN=STOK_TOP_GRN-@miktar,STOK_TOP_BKY=STOK_TOP_BKY-@miktar where STOK_ID=@urunid and @fistur='G' -- fis eklendi G artır C ise eksilt
update stok set STOK_TOP_CKN=STOK_TOP_CKN-@miktar,STOK_TOP_BKY=STOK_TOP_BKY+@miktar where STOK_ID=@urunid and @fistur='C'
insert into TempDB values(@urunid ,@fistur,@silinen_id,'Test') // TempDB dosyası gecici ekledim kaç kez gelindi bilgisi için.
end
Bu komutla**DELETE FROM StokHareket where ST_IMA_NO=2; tablodaki toplam 14 kayıt siliniyor hata yok.
14 kayıt silinmesine rağmen trigger sadece 1 kez çalışıyor* ve sadece bir stok güncelleniyor.
where karşılaştırmasında hata yok*
TempDB sadece 1*kayıt atıyor.
*
sql management* da message aşağıdaki gibi
(0 row(s) affected)
(1 row(s) affected)
(1 row(s) affected)
(14 row(s) affected)**
Konu hakkında yardım bekliyorum.

