Ms Sql Trigger Yard...
 
Bildirimler
Hepsini Temizle

Ms Sql Trigger Yardım, INSERT ve UPDATE  

  RSS
Serkan Peksağlam
(@SerkanPeksaglam)
Üye

Merhaba, 

 

Büyük harf için özür dilerim copy past yaptım. 

 

SIRKETLOG TABLE

SIRLOGMODUL SIRLOGKYTKODU SIRLOGILKKULKOD

2

120 001

SERKAN

1

120 999

XUSER

2

120 121

ZUSER

3

120 250

YUSER

 

 

 

 

CARKART TABLE

CARKOD

CARUNVANI

CAROZKOD1

120 001

DENEME CARİ KARTI

** UPDATE EDİLECEK SAHA **

 

SİSTEM SÖYLE ÇALIŞIYOR.

KULLANICI ADI VE ŞİFRENİ GİREREK PROGRAMA GİRİYORSUN

SIRKETLOG TABLOSU PROGRAMDA YAPILAN HERŞEYİ LOGLUYOR.

CARİ KART AÇMA İŞLEMİ YAPILINCA;

SIRLOGMODUL = 2 OLUYOR

VE BURADA KULLANICI ADI DA SIRLOGILKKULKOD = ‘SERKAN’
İSE

WHERE ŞARTI;

SIRLOGMODUL = ‘2’,   SIRLOGILKKULKOD = ‘SERKAN’,  SIRLOGKYTKODU=CARKOD

CARKART TABLOSUNDA CAROZKOD1 ALANININ OTOMATİK OLARAK ‘SERKAN’
OLARAK UPDATE EDİLMESİNİ İSTİYORUM.

BUNUN AMACI KULLANICININ AÇTIĞI KARTLARI RAPORLAMAK, BU
ALANI KULLANICININ İNSİYATİFİNE BIRAKMAK İSTEMİYORUM.

ŞÖYLE BİR KOD YAZDIM AMA BİR TÜRLÜ ÇALIŞTIRAMADIM. YARDIMCI
OLURSANIZ SEVİNİRİM. 

CREATE TRIGGER SERKAN ON dbo.SIRKETLOG 

FOR INSERT 

AS BEGIN

DECLARE @SIRLOGMODUL INT, @SIRLOGKYTKODU VARCHAR, @SIRLOGILKKULKOD VARCHAR

SELECT @SIRLOGKYTKODU = SIRLOGKYTKODU, @SIRLOGMODUL = SIRLOGMODUL, @SIRLOGILKKULKOD = SIRLOGILKKULKOD FROM inserted, dbo.CARKART

UPDATE dbo.CARKART SET dbo.CARKART.CAROZKOD1 = 'SERKAN'

WHERE  @SIRLOGKYTKODU = dbo.CARKART.CARKOD AND @SIRLOGILKKULKOD = 'SERKAN' AND @SIRLOGMODUL = '2' AND @SIRLOGKYTKODU = dbo.CARKART.CARKOD

END 

 

 

 

 

Alıntı
Gönderildi : 07/02/2015 23:08
oldmember
(@yavuzfilizlibay)
Üye

Merhaha

Insert triggerinde update yapmayın, insert triggerinde ....kulkod = SERKAN olarak insert işlemi yapın, yukardaki şartlar uyuyor ise bu alana Serkan olarak insert etsin.

Daha hiç veri girilmeyen bir alanda update yapılamaz. 

CevapAlıntı
Gönderildi : 08/02/2015 00:48
Serkan Peksağlam
(@SerkanPeksaglam)
Üye

Hocam,

Şu hali ile hiç bir işlem yapmıyor, Insert desem yapacak mı bilmiyorum, dediğinizi deneyeceğim.

Ancak aşağıdaki kod çalışıyor ve dediğiniz "yapılamaz" işlemini yapıyor, fakat o da tüm tabloyu okuyor,

bana tetiklenen satırdaki veri üzerinden update işlemi lazım. O yüzden @değişken kullanmak istedim.

Update yapan kod :

 CREATE TRIGGER CARI_OZELKOD1_SERKAN ON ETA_TEST_2015.dbo.SIRKETLOG

FOR INSERT AS
UPDATE ETA_TEST_2015.dbo.CARKART
     SET ETA_TEST_2015.dbo.CARKART.CAROZKOD1 = 'SERKAN'
     FROM ETA_TEST_2015.dbo.CARKART, ETA_TEST_2015.dbo.SIRKETLOG
     WHERE ETA_TEST_2015.dbo.SIRKETLOG.SIRLOGKYTKODU = ETA_TEST_2015.dbo.CARKART.CARKOD
     AND ETA_TEST_2015.dbo.SIRKETLOG.SIRLOGMODUL = '2'
     AND ETA_TEST_2015.dbo.SIRKETLOG.SIRLOGILKKULKOD = 'SERKAN'
CevapAlıntı
Gönderildi : 08/02/2015 03:06
Paylaş: