Scenarie:
Du arbejder som SQL Server-udvikler, du skal oprette to tabeller med Primary-Foreign Key Relationship. Du vil oprette Foreign Key Constraint med indstilling, hvis posten slettes fra referencetabel (primær nøglekolonnetabel), den skal ikke slettes fra overordnet tabel (foreign Key Constraint-tabel), i stedet skal værdien opdateres til Null.Løsning:
Vi kan bruge ON DELETE SET NULL med Foreign Key Constraint definition til at implementere ovenstående krav.Lad os udføre ved at bruge nedenstående script.
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) Tjek dataene i tabeller ved at bruge Vælg forespørgsel
![]() |
| Sådan opretter du fremmednøglebegrænsning med ON DELETE SET NULL i SQL Server |
Lad os slette rækken fra referencetabel (tabel med primær nøglekolonne) og kontrollere, om poster stadig eksisterer i overordnet tabel (tabel med fremmednøglebegrænsninger), og kolonneværdien er opdateret til Null.
--Delete the Record from Referenced Table(PK Column Table)
Delete from dbo.Customer
where CustomerId=1 ![]() |
| Sådan bruges ON DELETE SET NULL-indstillingen med Foreign Key Constraint i SQL Server |
Som vi kan se, er posten slettet fra referencetabel (tabel med primær nøglekolonne), men stadig til stede i overordnet tabel (tabel med udenlandsk nøglebegrænsning), men værdien er opdateret til Null som forventet.
Videodemo:Sådan oprettes en begrænsning af fremmednøgle med ON SLET SET NULL-indstillingen i SQL Server

