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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.İ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
Web Site : Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Facebook Page : Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
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?
Peyami Safa:"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır"
Can Yücel:"Toprak gibi olmalısın! Ezildikçe sertleşmelisin! Seni ezenler sana muhtaç kalmalı! Hayatı sende bulmalı"
Sinan Canan:"Bildiğini zannettiğin an hiç bir şey öğrenemezsin"
WWW
Cevapla
#6
(12-06-2019, Saat: 16:44)uparlayan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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;

Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Peyami Safa:"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır"
Can Yücel:"Toprak gibi olmalısın! Ezildikçe sertleşmelisin! Seni ezenler sana muhtaç kalmalı! Hayatı sende bulmalı"
Sinan Canan:"Bildiğini zannettiğin an hiç bir şey öğrenemezsin"
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Trigger a paramatre gönderme Bay_Y 11 1.513 28-05-2018, Saat: 11:59
Son Yorum: Bay_Y
  Trigger ile iki alanı birleştirme AkMegaSoft 9 2.074 08-06-2017, Saat: 16:33
Son Yorum: AkMegaSoft



Konuyu Okuyanlar: 1 Ziyaretçi