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
silme triggeri
- ahmet_sinav
- Üye
- Mesajlar: 263
- Kayıt: 17 Nis 2004 07:44
- Konum: İzmir Yeşilyurt Ulu Cami
- İletişim:
İ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.
Saygılar;
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