Çok Yakında Yeni Bir Arayüzle karşınızdayız! http://yeni.delphican.com/

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
[Çözüldü] Trigger çalışmaması hk.
#1
İyi günler.
Aşağıdaki triggeri  stokHareket dosyasına oluşturdum sql management ten oluşan trigger i görebiliyorum.

CREATE TRIGGER Stok_Giris ON StokHareket
AFTER INSERT
AS
 DECLARE @Hrkid INT
 DECLARE @miktar FLOAT
 SELECT @Hrkid = ST_STOKID, @miktar = ST_MIKTAR  FROM inserted
 UPDATE Stok SET STOK_TOP_GRN = STOK_TOP_GRN+@miktar
 WHERE STOK_ID=@Hrkid

sql management ile veya programdan insert yaparak hareket eklediğim halde STOK_TOP_GRN  alanı değişmiyor

trigger içindeki işlemleri çalışırken görebilir miyim
trigger tetiklendi, @Hrkid   aldığı değer gibi
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#2
(12-06-2019, Saat: 15:31)cinarbil Adlı Kullanıcıdan Alıntı: İyi günler.
Aşağıdaki triggeri  stokHareket dosyasına oluşturdum sql management ten oluşan trigger i görebiliyorum.

CREATE TRIGGER Stok_Giris ON StokHareket
AFTER INSERT
AS
 DECLARE @Hrkid INT
 DECLARE @miktar FLOAT
 SELECT @Hrkid = ST_STOKID, @miktar = ST_MIKTAR  FROM inserted
 UPDATE Stok SET STOK_TOP_GRN = STOK_TOP_GRN+@miktar
 WHERE STOK_ID=@Hrkid

sql management ile veya programdan insert yaparak hareket eklediğim halde STOK_TOP_GRN  alanı değişmiyor

trigger içindeki işlemleri çalışırken görebilir miyim
trigger tetiklendi, @Hrkid   aldığı değer gibi

Merhabalar,

Değişkenlere atmaktansa direkt + olarak ilave etseniz.

MS SQL olmadığı için test etme imkanım yok. Ama mantıken çalışması gerekli diye düşünüyorum.


UPDATE Stok
SET
 STOK_TOP_GRN = STOK_TOP_GRN+ST_MIKTAR 
WHERE
 STOK_ID = ST_STOKID;

Birde STOK_TOP_GRN Field Default "0" olarak ayarlayın.

Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#3
Normalde calismasi lazım ama aynı kullanacaksan boyle bir dene

CREATE TRIGGER TRG_Stok_Giris ON [StokHareket]
FOR INSERT
AS
DECLARE @Hrkid INT,
DECLARE @miktar DECIMAL (10,2);
SELECT @Hrkid = ST_STOKI FROM inserted ins;
SELECT @miktar = ST_MIKTAR FROM inserted ins;
UPDATE [Stok] SET STOK_TOP_GRN = STOK_TOP_GRN+@miktar
WHERE STOK_ID=@Hrkid
WWW
Cevapla
#4
CREATE  TRIGGER MYTBLSTHARTRG
ON _MYTBLSTHAR FOR INSERT
AS
BEGIN
DECLARE @STOK_KODU VARCHAR(50)
DECLARE @MIKTAR FLOAT
SELECT @STOK_KODU=INSERTED.STOK_KODU,@MIKTAR=STHAR_GCMIK FROM INSERTED
UPDATE _MYTBLSTOKPH SET TOP_GIRIS_MIK=TOP_GIRIS_MIK+1 WHERE STOK_KODU=@STOK_KODU AND DEPO_KODU='1'
END

benzeri bir örnekte kendimde denedim çalışıyor.

stok sabit tablosunda STOK_TOP_GRN alanının null olmadığına dikkat et.
Cevapla
#5
Merhaba,

@cinarbil ,

UPDATE Stok SET STOK_TOP_GRN = STOK_TOP_GRN+@miktar

kısmında STOK_TOP_GRN veya @miktar , "NULL" değer içeriyor olabilir mi? Kontrol ettiniz mi?
P.Safa:Yaşlanarak değil, yaşayarak tecrübe kazanılır.Zaman insanları değil,armutları olgunlaştırır
C.Yücel:Toprak gibi olmalısın! Ezildikçe sertleşmelisin!Seni ezenler sana muhtaç kalmalı! Hayatı sende bulmalı
S.Canan:Bildiğini zannettiğin an hiç bir şey öğrenemezsin
Bilgi uçar
WWW
Cevapla
#6
(12-06-2019, Saat: 16:44)uparlayan Adlı Kullanıcıdan Alıntı: Merhaba,

@cinarbil ,

UPDATE Stok SET STOK_TOP_GRN = STOK_TOP_GRN+@miktar

kısmında STOK_TOP_GRN veya @miktar , "NULL" değer içeriyor olabilir mi? Kontrol ettiniz mi?
 
Evet doğru bu giren cikan alanları null 

UPDATE Stok SET STOK_TOP_GRN=0  ile  atadın sonra çalıştı Allah c.c razı olsun  teşekkür ederim.
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#7
Şu yazıyı gözden geçirmenizi tavsiye ederim;

https://docs.microsoft.com/en-us/sql/t-s...erver-2017
P.Safa:Yaşlanarak değil, yaşayarak tecrübe kazanılır.Zaman insanları değil,armutları olgunlaştırır
C.Yücel:Toprak gibi olmalısın! Ezildikçe sertleşmelisin!Seni ezenler sana muhtaç kalmalı! Hayatı sende bulmalı
S.Canan:Bildiğini zannettiğin an hiç bir şey öğrenemezsin
Bilgi uçar
WWW
Cevapla
#8
Merhaba
SELECT @Hrkid = ST_STOKID, @miktar = ST_MIKTAR  FROM inserted
bu satırda sozde tablodan değişkene değer almaya calısmıssınız .tabloya tek kayıt eklendiğinde sorun olmaz.
fakat coklu kayıt (bulk insert) yapmaya kalktıgınızsa basınız belaya gırer.Triggerlarde mecbur kalınmadıkca değişken kullanma taraftarı degılım
benım onerım su sekilde
CREATE TRIGGER Stok_Giris ON StokHareket
AFTER INSERT
AS
  UPDATE stk
  SET stk.STOK_TOP_GRN = stk.STOK_TOP_GRN + I.ST_MIKTAR
  FROM Stok  AS stk
 JOIN INSERTED I ON I.ST_STOKID=stk.STOK_ID
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Trigger ile İlgili Kaydın ID Numarası Halil Han Badem 2 130 03-02-2020, Saat: 19:05
Son Yorum: Bay_Y
  MSSQL StoreProcedure Performans Sorunu (Çözüldü) adelphiforumz 23 1.723 18-09-2019, Saat: 14:13
Son Yorum: Bay_Y
  [ ÇÖZÜLDÜ ]MSSQL VeriTabanına Tarih Kaydetme Hatası theSinan 7 854 04-09-2019, Saat: 10:57
Son Yorum: theSinan
  Trigger a paramatre gönderme Bay_Y 11 2.287 28-05-2018, Saat: 11:59
Son Yorum: Bay_Y
  Trigger ile iki alanı birleştirme AkMegaSoft 9 2.894 08-06-2017, Saat: 16:33
Son Yorum: AkMegaSoft



Konuyu Okuyanlar: 1 Ziyaretçi