Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So erstellen Sie Foreign Key Constraint mit ON DELETE CASCADE in SQL Server - SQL Server / TSQL Tutorial Teil 80

Szenario:

Sie arbeiten als SQL Server-Entwickler, Sie müssen zwei Tabellen mit Primär-Fremdschlüssel-Beziehung erstellen. Sie möchten eine Fremdschlüssel-Einschränkung mit der Einstellung erstellen, ob der Datensatz aus der referenzierten Tabelle (Primärschlüssel-Spaltentabelle) gelöscht werden soll, er sollte auch aus der übergeordneten Tabelle (Fremdschlüssel-Einschränkungstabelle) gelöscht werden.

Lösung:

SQL Server lässt uns die Einstellung mit Foreign Key Constraint namens On DELETE CASCADE verwenden. Wenn diese Regel implementiert ist, wird jedes Mal, wenn ein Datensatz aus der referenzierten Tabelle (Primärschlüssel-Spaltentabelle) gelöscht wird, er auch aus der übergeordneten Tabelle (Fremdschlüssel-Einschränkungstabelle) gelöscht.
Lassen Sie uns dieses Szenario mit dem folgenden Skript testen.
USE YourDatabaseName
GO

CREATE TABLE dbo.Customer (
    Customerid INT PRIMARY KEY
    ,FName VARCHAR(100)
    ,LName VARCHAR(100)
    ,SSN VARCHAR(10)
    )


    CREATE TABLE dbo.Orders (
    OrderId INT Identity(1, 1)
    ,OrderitemName VARCHAR(50)
    ,OrderItemAmt INT
    ,Customer_id INT FOREIGN KEY REFERENCES
     Customer(CustomerId) ON DELETE CASCADE
    )

    --insert sample data
     insert into dbo.Customer 
    (CustomerId,FName, LName,SSN)
     values
    (1,'Aamir','Shahzad','000-000-00')
 
 
 Überprüfen Sie die Daten in Tabellen mit der Auswahlabfrage.
So aktivieren Sie die Regel ON Delete CASCADE mit Foreign Key Constraint in SQL Server

Lassen Sie uns die Zeile aus der referenzierten Tabelle (Primärschlüssel-Spaltentabelle) löschen und prüfen, ob sie auch aus der übergeordneten Tabelle (Fremdschlüssel-Einschränkungstabelle) gelöscht wird.

    --Delete the Record from Referenced Table(PK Column Table)
    Delete from dbo.Customer
    where CustomerId=1


Überprüfen Sie die Tabellen erneut, um zu sehen, ob der Datensatz aus beiden Tabellen gelöscht wurde, weil die ON Delete Cascade-Regel für die Fremdschlüsseleinschränkung gilt.
Wie man ON Delete Cascade verwendet, um Datensätze aus mehreren Tabellen in einer SQL Server-Tabelle zu löschen

Wie wir sehen können, werden die Datensätze aufgrund der ON DELETE CASCADE-Regel der Foreign Key Constraint aus beiden Tabellen gelöscht.

Videodemo:So erstellen Sie eine Fremdschlüsseleinschränkung mit ON DELETE CASCADE in SQL Server