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

Sådan opretter du begrænsning af fremmednøgle med ON UPDATE CASCADE i SQL Server - SQL Server / TSQL Tutorial Del 79

Scenarie:

I tidligere indlæg lærer vi, at hvis vi har Foreign Key Constraint med standardindstilling, og vi forsøger at opdatere værdien i kolonnen i referencetabel, som bruges som referencekolonne i Foreign Key Constraint, får vi fejl. Vi diskuterede flere måder at håndtere situationen på. Tjek venligst dette link.
Foreign Key Constraint giver mulighed for at indstille Cascading-handlingen, vi kan oprette Foreign Key Constraint med Cascading Update.
Hvis Update Cascading-indstillinger bruges, når vi opdaterer værdien i Referencetabel , vil den også opdatere værdien i kolonnen overordnet tabel (Foreign Key Table).
Lad os teste dette scenarie. Opret to tabeller dbo.Customer og dbo.Orders with Foreign Key Relationship by given 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 UPDATE CASCADE
    )


    --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)
 
 
 Lad os tjekke dataene i tabeller ved at bruge select query
Sådan opretter du fremmednøglebegrænsning med Update Cascade i SQL Server


Lad os køre vores opdateringserklæring på CustomerId i dbo.Customer table og se, om den også opdaterer kolonneværdien i dbo.Orders for Customer_id.
    update dbo.Customer
    set Customerid=100
 
 Lad os tjekke dataene igen i vores tabeller 
Sådan aktiverer du opdateringskaskade med fremmednøglebegrænsning i SQL Server

Som vi kan se, er værdien også opdateret i kolonnen dbo.Orders.Customer_id.


Videodemo:Sådan opretter du en fremmednøglebegrænsning med ON UPDATE CASCADE i SQL Server
  1. Amazon RDS til PostgreSQL-alternativer - ClusterControl til PostgreSQL

  2. Find dublerede rækker i SQL Server

  3. Brug af SQL til at bestemme ordtællingsstatistikker for et tekstfelt

  4. Sådan bruger du Coalesce-funktionen i Oracle