Triger işlemleri konusunda yardım

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
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Triger işlemleri konusunda yardım

Mesaj gönderen adelphiforumz »

S.A.

Belki aşağıda yazacaklarım Triger yapısına ters düşüyor olabilir fakat yapmak istediğim

Asıl ve Log olarak birbirinin aynısı olan iki database var
Asıl olanda bir update edildiğinde bu kaydın aynısının log tarafına insert edilmesi gerekiyor

İncelediğim ve yaptığım örneklerde update işleminde kaydın update edilmeden önceki hali triger tarafından işleniyor

Teşekkürler
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Triger işlemleri konusunda yardım

Mesaj gönderen thelvaci »

Bana kalırsa yazdığınız kodu öncelikle bir görmeliyiz. Trigger'ın içinde ne yazdınız, ona göre yorumlayalım.
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Triger işlemleri konusunda yardım

Mesaj gönderen adelphiforumz »

S.A

Tuğrul Hocam

Kodlar Aşağıdaki şekilde

Kod: Tümünü seç

               create trigger [dbo].[Trg_Satis_I] ON [dbo].[Satis] 
                          for insert 
                          as  
                          begin
                              insert into LogTakip.dbo.Satis 
                              select 'I', getdate(), * FROM inserted 
                          end

Kod: Tümünü seç

               create trigger [dbo].[Trg_Satis_U] ON [dbo].[Satis] 
                          for update
                          as  
                          begin
                              insert into LogTakip.dbo.Satis 
                              select 'U', getdate(), * FROM Deleted 
                          end

Kod: Tümünü seç

               create trigger [dbo].[Trg_Satis_D] ON [dbo].[Satis] 
                          for delete
                          as  
                          begin
                              insert into LogTakip.dbo.Satis 
                              select 'D', getdate(), * FROM deleted 
                          end
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Triger işlemleri konusunda yardım

Mesaj gönderen thelvaci »

SQL Server'da update triggerında Inserted sanal tablosu içinde kaydın güncellenmiş hali; deleted sanal tablosunda ise kaydın güncellemeden önceki hali bulunur. Dolayısı ile update triggerınızda DELETED'dan değil; INSERTED'dan alırsanız ilgili bilgileri sanırım istediğinizi elde etmiş olursunuz.
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Triger işlemleri konusunda yardım

Mesaj gönderen adelphiforumz »

S.A.

Tuğrul hocam
tam yapmak istediğimde buydu

Teşekkürler
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Cevapla