sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man skapar utländsk nyckelbegränsning med ON DELETE CASCADE i SQL Server - SQL Server / TSQL Tutorial Del 80

Scenario:

Du arbetar som SQL Server-utvecklare, du måste skapa två tabeller med Primär - Utländsk nyckelrelation. Du vill skapa främmande nyckelbegränsning med inställning om posten kommer att raderas från refererad tabell (primärnyckelkolumntabell), den bör också raderas från överordnad tabell (utländsk nyckelbegränsningstabell).

Lösning:

SQL Server låt oss använda inställningen med Foreign Key Constraint som heter On DELETE CASCADE. Om den här regeln implementeras, när posten raderas från refererad tabell (Primärnyckelkolumntabell), kommer den också att tas bort från överordnad tabell (Foreign Key Constraint Table).
Låt oss testa detta scenario med 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 CASCADE
    )

    --insert sample data
     insert into dbo.Customer 
    (CustomerId,FName, LName,SSN)
     values
    (1,'Aamir','Shahzad','000-000-00')
 
 
 Kontrollera data i tabeller med hjälp av en sökfråga.
Hur man aktiverar ON Delete CASCADE-regeln med Foreign Key Constraint i SQL Server

Låt oss ta bort raden från refererad tabell (primär nyckelkolumntabell) och se om den också raderas från överordnad tabell (tabell med utländsk nyckel)

    --Delete the Record from Referenced Table(PK Column Table)
    Delete from dbo.Customer
    where CustomerId=1


Kontrollera tabellerna igen för att se om posten har tagits bort från båda tabellerna på grund av ON Delete Cascade-regeln på Foreign Key Constraint.
Hur man använder ON Delete Cascade för att ta bort poster från flera tabeller i SQL Server Table

Som vi kan se att posterna raderas från båda tabellerna på grund av ON DELETE CASCADE-regeln för Foreign Key Constraint.

Videodemo:Hur man skapar en främmande nyckelbegränsning med ON DELETE CASCADE i SQL Server
  1. Optimera gruppvis maximal fråga

  2. Fixar för SQL Server 2012 &2014 Online Index Rebuild Issue

  3. Varning:mysql_fetch_array() förväntar sig att parameter 1 är resurs, boolean ges i

  4. Oracle-aggregat för att sammanfoga strängar med kommatecken och för att skriva anpassade aggregat