Szenario:
Sie arbeiten als SQL Server-Entwickler, Sie müssen zwei Tabellen mit Primär-Fremdschlüssel-Beziehung erstellen. Sie möchten eine Fremdschlüsseleinschränkung mit der Einstellung erstellen, ob der Datensatz aus der referenzierten Tabelle (Primärschlüssel-Spaltentabelle) gelöscht werden soll, er sollte nicht aus der übergeordneten Tabelle (Fremdschlüsseleinschränkungstabelle) gelöscht werden, stattdessen sollte der Wert auf Null aktualisiert werden.Lösung:
Wir können ON DELETE SET NULL mit der Foreign Key Constraint-Definition verwenden, um die obige Anforderung zu implementieren.Lassen Sie uns mit dem folgenden Skript ausführen.
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 SET NULL
)
--insert sample data
insert into dbo.Customer
(CustomerId,FName, LName,SSN)
values
(1,'Aamir','Shahzad','000-000-00')
insert into dbo.Orders
(OrderItemName,OrderItemAmt,Customer_Id)
values ('TV',1,1) Überprüfen Sie die Daten in Tabellen mit der Auswahlabfrage
![]() |
| Erstellen einer Fremdschlüsseleinschränkung mit ON DELETE SET NULL in SQL Server |
Lassen Sie uns die Zeile aus der referenzierten Tabelle (Primärschlüssel-Spaltentabelle) löschen und prüfen, ob noch Datensätze in der übergeordneten Tabelle (Fremdschlüssel-Einschränkungstabelle) vorhanden sind und der Spaltenwert auf Null aktualisiert wurde.
--Delete the Record from Referenced Table(PK Column Table)
Delete from dbo.Customer
where CustomerId=1 ![]() |
| Verwendung der Option ON DELETE SET NULL mit Foreign Key Constraint in SQL Server |
Wie wir sehen können, wurde der Datensatz aus der referenzierten Tabelle (Primärschlüssel-Spaltentabelle) gelöscht, ist aber immer noch in der übergeordneten Tabelle (Fremdschlüssel-Einschränkungstabelle) vorhanden, aber der Wert wird wie erwartet auf Null aktualisiert.
Videodemo:So erstellen Sie eine Fremdschlüsselbeschränkung mit der Option ON DELETE SET NULL in SQL Server

