create Trigger update (update yapılan kaydı yakalayıp tutma)

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
gokcemt
Üye
Mesajlar: 34
Kayıt: 01 Eki 2003 04:10
Konum: eskişehir

create Trigger update (update yapılan kaydı yakalayıp tutma)

Mesaj gönderen gokcemt »

Table1 de update yapıldığında değişen kaydı eski ve yeni olarak Table2 ye kaydetmesini yapmaya çalışıyorum. Yani Table1 in log'unu tutucam.
Aşağıdaki trigerı kaydediyor ama kayıt üzerinde update yapmak isteyince
hata veriyor. şimdiden teşekkürler

Kod: Tümünü seç

TABLE 1
ADI,
        SOYADI,
        ADRES,
        TEL,
        ILILCE,

Kod: Tümünü seç

 TABLE2
        ADI,
        SOYADI,
        ADRES,
        TEL,
        ILILCE,
        ISLEMTIPI,
        TARIH



Kod: Tümünü seç

CREATE TRIGGER [dbo].[Table1_UPDATE] ON [dbo].[Table1]
for UPDATE
as
IF (COLUMNS_UPDATED() & 14) > 0
BEGIN
INSERT INTO Table2
        (ADI,
        SOYADI,
        ADRES,
        TEL,
        ILILCE,
        ISLEMTIPI,
        TARIH
) 
        SELECT  del.ADI, 
                del.SOYADI,
                del.ADRES,
                del.TEL,
                del.ILILCE,
				'UPDATE_ESKI',
				GETDATE()
            FROM deleted del

    INSERT INTO Table2
        (ADI,
        SOYADI,
        ADRES,
        TEL,
        ILILCE,
        ISLEMTIPI,
        TARIH)
        SELECT  ins.ADI, 
                ins.SOYADI,
                ins.ADRES,
                ins.TEL,
                ins.ILILCE,
				'UPDATE_YENI',
				GETDATE()
            FROM inserted ins
END;
west
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
verdiği hata mesajnıda yazsaydınız keşke...
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
gokcemt
Üye
Mesajlar: 34
Kayıt: 01 Eki 2003 04:10
Konum: eskişehir

Mesaj gönderen gokcemt »

a.s.

Tabi hata mesajı şöyle

No row was updated

The row value(s) updated or deleted either do not make the row unique or they alter multiple rows
west
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

IF (COLUMNS_UPDATED() & 14) > 0

Bu satırda ne demek istediğinizi tam açıklar mısınız. Yani ADI alanı haricindeki herhangi bir değer değişirse mi demek istediniz?

Sorun oradan kaynaklanıyor sanırım. Yada bir başka ihtimal, Tablo2'nizde de bir Trigger veya benzeri bir şey olabilir.

Biraz daha açıklarsanız ne yapmak istediğinizi ona göre yol yöntem önerebiliriz.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Cevapla