Insert trigger oluşturma derdi

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

Insert trigger oluşturma derdi

Mesaj gönderen gokcemt »

Table1
KOD------ADI---------DEGER
1-----------A------------20-----
1-----------B------------80-----
2-----------C------------100---
3-----------D------------20----
3-----------E-------------10---
3-----------F-------------70---
4-----------G-------------50---
4-----------H-------------50---

şeklinde mevcut bir tablom var

bu tabloya insert yapıldığında
insert yapılan stokkodu Table2de varsa Table2 update ile yeni değeri eklemesini yoksa Table2 insert ederek kaydı girmesini yapmaya çalışıyorum. Sonuç olarak elde etmek istediğim tablo yapısı aşağıda mevcut.

Table 2
KOD------ DEGER
1----------A %20 - B %80
2----------C %100
3----------D %20 - E %10 - F %70
4----------G %50 - H %50

Şöyle bi çalışma yaptım ama sonuç yok. Şimdiden Allah razı olsun teşekkürler yardımcı olanlara

CREATE TRIGGER Table1_INSERT ON Table1

FOR INSERT

AS

DECLARE @KOD VARCHAR(20)
DECLARE @ADI VARCHAR(20)
DECLARE @DEGER VARCHAR(10)

Select @KOD = KOD From INSERTED

INSERT Table2 Where
(Table1KOD = @KOD) AND
(Table1DEGER=@ADI+@DEGER)
west
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Trigger ları Hem update hem insert işlemleri için ayrı tanımlamalısın.
Tabi her iki işlemi de tek trigger içinde tanımlayabilirsin
Fakat Silme olursa TAblo2 yi düzenlemen bu birleştirmelere göre zor.. :roll:

viewtopic.php?t=8900&highlight=trigger

Burdaki makaleyi bir incele
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Tabloya insert yapıldığında yazdığın triggerda bir IF sorgusu ile Table2 ye bakarak kayıt varsa UPDATE yoksa INSERT işlemini gerçekleştirebilirsiniz.

Kod: Tümünü seç

CREATE TRIGGER Table1_INSERT ON Table1

FOR INSERT

AS

DECLARE @KOD VARCHAR(20)
DECLARE @ADI VARCHAR(20)
DECLARE @DEGER VARCHAR(10)

Select @KOD = KOD From INSERTED

IF EXISTS(SELECT * FROM TAble2 WHERE Table1KOD=@KOD)--kayıt mevcutsa update
  UPDATE Table2...
ELSE --kayıt mevcut değilse insert
  INSERT Table2...
gokcemt
Üye
Mesajlar: 34
Kayıt: 01 Eki 2003 04:10
Konum: eskişehir

çok teşekkürler

Mesaj gönderen gokcemt »

Arkadaşlar çok teşekkür ederim. Naile hanım sizin yazdığınız kod ile yola çıkarak yaklaşık 6 saatte amacıma sonunda ulaşabildim.

Tekrar Teşekkürler.. İyi çalışmalar
west
Cevapla