sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan opretter du udenlandsk nøglebegrænsning med ON SLET CASCADE i SQL Server - SQL Server / TSQL vejledning del 80

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
  1. Hvordan slippes kolonne med tvang?

  2. Fremskridtsrapporteringsforbedringer i PostgreSQL 12

  3. Oracle-forespørgsel til at finde alle forekomster af et tegn i en streng

  4. 2 måder at returnere rækker, der indeholder alfanumeriske tegn i MySQL