Scenarie:
Du arbejder som SQL Server-udvikler, du skal oprette to tabeller med Primary-Foreign Key Relationship. Du vil oprette Foreign Key Constraint med indstillingen, hvis posten slettes fra referencetabel (primær nøglekolonnetabel), skal den også slettes fra overordnet tabel (foreign Key Constraint-tabel).Løsning:
SQL Server lad os bruge indstillingen med Foreign Key Constraint kaldet On DELETE CASCADE. Hvis denne regel implementeres, vil posten, når som helst slettes fra referencetabel (tabel med primær nøglekolonne), også blive slettet fra overordnet tabel (tabel med begrænsninger med fremmed nøgle).Lad os teste dette scenarie med 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 CASCADE ) --insert sample data insert into dbo.Customer (CustomerId,FName, LName,SSN) values (1,'Aamir','Shahzad','000-000-00')
Tjek dataene i tabeller ved at bruge valgforespørgsel.
Sådan aktiveres ON Slet CASCADE-regel med Foreign Key Constraint i SQL Server |
Lad os slette rækken fra den refererede tabel (tabel med primær nøglekolonne) og se, om den også sletter fra den overordnede tabel (tabel med begrænsninger med fremmed nøgle)
--Delete the Record from Referenced Table(PK Column Table) Delete from dbo.Customer where CustomerId=1
Tjek tabellerne igen for at se, om posten er slettet fra begge tabeller på grund af ON Delete Cascade regel på Foreign Key Constraint.
Sådan bruges ON Delete Cascade til at slette poster fra flere tabeller i SQL Server Table |
Som vi kan se, er posterne slettet fra begge tabeller på grund af ON DELETE CASCADE-reglen for Foreign Key Constraint.
Videodemo:Sådan opretter du en fremmednøglebegrænsning med ON SLET CASCADE i SQL Server