Forum
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
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