Scenario:
Du arbetar som SQL Server-utvecklare, du måste skapa två tabeller med Primär - Utländsk nyckelrelation. Du vill skapa Foreign Key Constraint med inställningen om posten kommer att raderas från refererad tabell (Primary Key Column Table), den ska inte tas bort från överordnad tabell ( Foreign Key Constraint Table) istället ska värdet uppdateras till Null.Lösning:
Vi kan använda ON DELETE SET NULL med Foreign Key Constraint definition för att implementera ovanstående krav.Låt oss utföra genom att använda nedanstående skript.
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) Kontrollera data i tabeller med hjälp av Välj-fråga
![]() |
| Hur man skapar en främmande nyckelbegränsning med ON DELETE SET NULL i SQL Server |
Låt oss ta bort raden från refererad tabell (tabell med primär nyckelkolumn) och kontrollera om poster fortfarande finns i överordnad tabell (tabell med utländsk nyckel) och kolumnvärdet uppdateras till Null.
--Delete the Record from Referenced Table(PK Column Table)
Delete from dbo.Customer
where CustomerId=1 ![]() |
| Hur man använder alternativet ON DELETE SET NULL med Foreign Key Constraint i SQL Server |
Som vi kan se att posten har raderats från refererad tabell (Primärnyckelkolumntabell) men fortfarande finns i överordnad tabell (utländsk nyckelbegränsningstabell) men värdet uppdateras till Null som förväntat.
Videodemo:Hur man skapar en främmande nyckelbegränsning med ON DELETE SET NULL-alternativet i SQL Server

