silme triggeri

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
echobility
Üye
Mesajlar: 14
Kayıt: 17 Eki 2006 02:11

silme triggeri

Mesaj gönderen echobility »

bir ana tablom var ve ona bağlı 4 tane detail tablosu.silme triggeri ile ana tablodan bir kayır sildiğimde tüm kayıtlardan silinmesi.forumlardaki makaleleri okuyarak oradan aldığım yardım ile şöle bir trigger oluştrdum
Problemim sql serverda anatablodan kaydı silmek istediğimde sanırım sonsuz döngüye giriyor.

CREATE TRIGGER SIL_SIPNO
ON [dbo].[ANATABLO_T]

FOR DELETE

NOT FOR REPLICATION AS

BEGIN
DECLARE @SIP_NO VARCHAR(10)
DECLARE SILINEN_SIPNO CURSOR FOR SELECT SIP_NO FROM DELETED

OPEN SILINEN_SIPNO
FETCH NEXT FROM SILINEN_SIPNO INTO @SIP_NO
WHILE @@FETCH_STATUS<>-1
BEGIN
DELETE FROM AC_AKIM_T WHERE AC_AKIM_T.SIP_NO=@SIP_NO
DELETE FROM AC_GERILIM_T WHERE AC_GERILIM_T.SIP_NO=@SIP_NO
DELETE FROM DC_AKIM_T WHERE DC_AKIM_T .SIP_NO=@SIP_NO
DELETE FROM DC_GERILIM_T WHERE DC_GERILIM_T.SIP_NO=@SIP_NO
END
CLOSE SILINEN_SIPNO
DEALLOCATE SILINEN_SIPNO
END
Kullanıcı avatarı
ahmet_sinav
Üye
Mesajlar: 263
Kayıt: 17 Nis 2004 07:44
Konum: İzmir Yeşilyurt Ulu Cami
İletişim:

Mesaj gönderen ahmet_sinav »

İyi çalışmalar;
Detail tablolarınız oluştururken, foreign key tanımlayarak bu problemi aşabilrsiniz. foreign key'leri oluştururken on delete cascade yapmanız yeterli olacaktır.

Kod: Tümünü seç

ALTER TABLE [dbo].[detail_tablo_adi]
ADD CONSTRAINT [fkforeignkeyismi] FOREIGN KEY ([detail_tablodaki_baglanti_kolonu]) 
  REFERENCES [dbo].[mastertablo] ([mastertablo_bagalntikolonu])
  ON UPDATE NO ACTION
  ON DELETE CASCADE
Saygılar;
Cevapla