Netsis ‘Foreign Key Constraint’ Hatası
SQL Server’da “FOREIGN KEY constraint violation” hatası → veritabanı referans bütünlüğü ihlali. Genelde silme veya güncelleme sırasında oluşur.
Hata Mesajı
Msg 547, Level 16, State 0
The DELETE statement conflicted with the REFERENCE constraint
"FK_FATURA_MUSTERI". The conflict occurred in database "NETSIS_DB"
Senaryolar
- Müşteri silme: Müşteriye ait açık fatura/sipariş varken silinmek isteniyor
- Stok silme: Stok kart hareketleri varken silinmek isteniyor
- Personel silme: Bordro kayıtları olan personel silinmek isteniyor
- Hesap silme: Hareket görmüş hesap silinmek isteniyor
Çözüm — Silme Yerine Pasif Yap
Veritabanı referans bütünlüğü için silmek yerine pasifleştirmek doğru yaklaşımdır:
- Müşteri kart → “Pasif” seçeneği
- Stok kart → “Pasif”
- Personel → “İşten ayrıldı” + tarih
- Hesap → “Kullanım dışı”
Zorla Silme (Tehlikeli)
-- ÖNERİLMEZ - veri kaybı riski!
ALTER TABLE FATURA NOCHECK CONSTRAINT FK_FATURA_MUSTERI;
DELETE FROM MUSTERI WHERE ID = 123;
ALTER TABLE FATURA CHECK CONSTRAINT FK_FATURA_MUSTERI;
⚠️ DİKKAT: FK constraint zorla kapatılırsa fatura tablosunda referans olmayan kayıtlar oluşur. Bu mizan denksizliği + yasal risk yaratır.
Doğru Çözüm Adımları
- Bağımlı Kayıtları Bul — Müşteriye ait fatura, sipariş, çek listesi
- Aktif Bakiye Sıfırla — Açık tahsilat veya ödemeleri kapat
- Kart Pasifleştir — Silmek yerine “pasif” işaretle
- Geçmiş Veri Korunur — Pasif kartlar raporlarda görünmez ama geçmiş hareketler korunur
Sıkça Sorulan Sorular
Yıllar önceki müşteriyi silmek istiyorum?
10 yıllık yasal saklama süresinden sonra arşivleme + silme mümkün ama yasal danışman onayı önerilir.
Pasif müşteri raporlarda görünür mü?
Filtre ile gösterilebilir, varsayılan görünmez.
Mali müşavir denetiminde sorun olur mu?
Pasif kart geçmişi denetlenebilir, yasal sorun yok.
Profesyonel Destek
Logo Yazılım yetkili Netsis bayisi olarak 7/24 hizmetinizdeyiz. Ücretsiz demo, fiyat teklifi ve teknik destek için iletişime geçin: 0532 599 51 12 / info@netsislogo.com