Ana içeriğe atla

INNER JOIN Silme İşleminde REFERANCE Hatası

 SQL 'de INNER JOIN için ben diagram kullandım ama silme işlemleri için bu hataya yol açtı kodlar yazıldıktan sonra. Sillme işleminin yapıla bilmesi için :

Diagram üzerinden "ON DELETE CASCADE" ekleme

  1. SSMS’te veritabanını aç.

  2. Database Diagrams → kullandığın diyagramı aç.

  3. isim tablosu ile soyisim tablosu arasındaki ilişki çizgisine çift tıkla.

  4. INSERT and UPDATE Specification bölümünü bul.

  5. Delete RuleCascade olarak değiştir.

  6. Kaydedip diyagramı kapat.

 




2️⃣ SQL komutuyla ekleme (manuel yöntem)

Eğer diyagramdan uğraşmak istemiyorsan, SQL koduyla da ekleyebilirsin:

ALTER TABLE Soyisim

DROP CONSTRAINT FK_Soyisim_Isim;  -- Burada mevcut foreign key adını yazacaksın

ALTER TABLE Soyisim

ADD CONSTRAINT FK_Soyisim_Isim

FOREIGN KEY (isim_Id) REFERENCES Isim(isim_Id)

ON DELETE CASCADE;


ON DELETE CASCADE tamamen silme işlemleri için tanımlanan bir FOREIGN KEY davranış kuralıdır.

Normal FOREIGN KEY: Ana tabloda bir kayıt silmek istersen ve bu kayıt başka tablolarda kullanılıyorsa REFERENTIAL INTEGRITY hatası alırsın (yani “Bu kayıt başka tabloda kullanılıyor, silemezsin” hatası).

FOREIGN KEY + ON DELETE CASCADE: Ana tablodaki kayıt silinirse, ona bağlı tüm alt tablodaki kayıtlar otomatik silinir.


****Eğer FOREGIN KEY SQL Tarafında SQL sorguları ile yazılıyorsa ON DELETE CASCADE için SQL sorgusuna dahil edilmeli işte Manuel SQL Sorgusu:

FOREIGN KEY oluştururken ON DELETE CASCADE ekleme

CREATE TABLE Isim (

    isim_Id INT PRIMARY KEY IDENTITY(1,1),

    isim NVARCHAR(50) NOT NULL

);


CREATE TABLE Soyisim (

    soyisim_Id INT PRIMARY KEY IDENTITY(1,1),

    isim_Id INT NOT NULL,

    soyisim NVARCHAR(50) NOT NULL,

    CONSTRAINT FK_Soyisim_Isim

        FOREIGN KEY (isim_Id) 

        REFERENCES Isim(isim_Id) 

        ON DELETE CASCADE

);




Bu blogdaki popüler yayınlar

FOREGIN KEY ve INNER JOIN ile ilişkili tablo oluşturma Örneği

--1)DataBase oluşturma Sorgusu --CREATE DATABASE Join_Alistirma; --GO --USE Join_Alistirma; --GO --2)musteri Tablosu oluşturma --CREATE TABLE musteri ( --    musteri_ID INT IDENTITY(1,1) PRIMARY KEY, --    adi_soyadi NVARCHAR(100) NOT NULL, --    telefon NVARCHAR(20) NOT NULL --); ---3)araclar Tablosunu Oluştur (FOREIGN KEY ile) --CREATE TABLE araclar ( --    id INT IDENTITY(1,1) PRIMARY KEY, --    musteri_ID INT NOT NULL, --    plaka NVARCHAR(20) NOT NULL, --    marka NVARCHAR(50), --    model NVARCHAR(50), --    yil INT, --    FOREIGN KEY (musteri_ID) REFERENCES musteri(musteri_ID) --); ----------------------------------------------------------------------------- ----NOT  --musteri_ID → musteri tablosuyla bağlantılı olacak. --plaka, marka, model, yil alanları araç bilgilerini tutacak. ----------------------------------------------------------------------------- ---4)Tablolara muste...

Private Void Metod

 namespace Metotlar {     public partial class Form1 : Form     {         public Form1()         {             InitializeComponent();         }         //Parametre Almayan Değer Döndürmeyen Metot         //Değer döndürmeyen metot tanımlarken Başa Void yazılır         //Tekrar tekrar aynı kod parçasını yazmaya gerek kalmaz Metot adını istediğinde çağarabilirsin         //void : private void olan metot başka yerden erişelemez         //public void olanlar ise erişime açık (dışarıdan görülebilen) anlamına gelir         //Örnek : MesayYaz Metotu: Çağrıldığı yerde ekrana bir mesaj veren metot yazalım         void MesajYaz()          {             MessageBox.Show("Merhaba Ben Parametresiz...

İD ye göre işlemler C# ve Class örnekleri ile Birlikte

***************************************************************************** ✅ DbHelper.cs adında bir sınıf ile Insert , Update , Delete , GetId , SelectAll işlemlerini kolayca yapabilirsiniz. ✅ SCOPE_IDENTITY() kullanarak son eklenen kaydın ID’sini çekme örneği var. ✅ Bu ID’yi Label veya TextBox ’a yazdırabilir, Update veya Delete için tekrar kullanabilirsiniz. ✅ DataGridView ile tüm verileri listeleme örneği de dahil. *****************************************************************************  // ✅ DbHelper.cs using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; public static class DbHelper {     private static string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=YourDatabase;Integrated Security=True";     public static object InsertAndGetId(string query, Dictionary<string, string> parameters)     {         using (SqlConnection connection = new SqlConne...