Scenario:
U werkt als SQL Server-ontwikkelaar, u moet twee tabellen maken met Primary -Foreign Key Relationship. U wilt een Foreign Key Constraint maken met de instelling als record wordt verwijderd uit de tabel waarnaar wordt verwezen (Primary Key Column Table), het mag niet worden verwijderd uit de bovenliggende tabel (Foreign Key Constraint Table) in plaats daarvan moet de waarde worden bijgewerkt naar Null.Oplossing:
We kunnen ON DELETE SET NULL gebruiken met Foreign Key Constraint-definitie om bovenstaande vereiste te implementeren.Laten we het onderstaande script gebruiken.
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)
Controleer de gegevens in tabellen met Selectquery
Hoe maak je een Foreign Key Constraint met ON DELETE SET NULL in SQL Server |
Laten we de rij verwijderen uit de tabel waarnaar wordt verwezen (kolomtabel met primaire sleutel) en controleren of records nog steeds bestaan in de bovenliggende tabel (beperkingstabel voor externe sleutels) en de kolomwaarde wordt bijgewerkt naar Null.
--Delete the Record from Referenced Table(PK Column Table) Delete from dbo.Customer where CustomerId=1
De optie ON DELETE SET NULL gebruiken met Foreign Key Constraint in SQL Server |
Zoals we kunnen zien, is het record verwijderd uit de tabel waarnaar wordt verwezen (kolomtabel met primaire sleutel) maar nog steeds aanwezig in de bovenliggende tabel (tabel met beperkingen voor externe sleutels), maar wordt de waarde zoals verwacht bijgewerkt naar Null.
Videodemo:beperking van externe sleutels maken met de optie ON DELETE SET NULL in SQL Server