sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man skapar utländsk nyckelbegränsning med PÅ UPPDATERING CASCADE i SQL Server - SQL Server / TSQL Handledning Del 79

Scenario:

I tidigare inlägg får vi veta att om vi har Foreign Key Constraint med standardinställning och vi försöker uppdatera värdet i kolumn i Reference Table som används som referenskolumn i Foreign Key Constraint, får vi ett fel. Vi diskuterade flera sätt att hantera situationen, kolla den här länken.
Foreign Key Constraint ger möjlighet att ställa in Cascading-åtgärden, vi kan skapa Foreign Key Constraint med Cascading Update.
Om Update Cascading-inställningar används, när vi uppdaterar värdet i Refererad tabell, kommer det också att uppdatera värdet i kolumnen för överordnad tabell (Foreign Key Table).
Låt oss testa detta scenario. Skapa två tabeller dbo.Customer och dbo.Orders med utländsk nyckelrelation genom givet 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 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)
 
 
 Låt oss kontrollera data i tabeller med hjälp av urvalsfråga
Hur man skapar en utländsk nyckelbegränsning med Update Cascade i SQL Server


Låt oss köra vår uppdateringssats på CustomerId i dbo.Customer table och se om den också uppdaterar kolumnvärdet i dbo.Orders for Customer_id.
    update dbo.Customer
    set Customerid=100
 
 Låt oss kontrollera data igen i våra tabeller 
Hur man aktiverar uppdaterings kaskadkoppling med främmande nyckelbegränsning i SQL Server

Som vi kan se att värdet också uppdateras i kolumnen dbo.Orders.Customer_id.


Videodemo:Hur man skapar en främmande nyckelbegränsning med PÅ UPPDATERING CASCADE i SQL Server
  1. Databasdesign för flerspråkiga applikationer

  2. Lista över alla index- och indexkolumner i SQL Server DB

  3. Använd XEvent Profiler för att fånga frågor i SQL Server

  4. Membership.ValidateUser returnerar alltid false efter uppgradering till VS 2010 / .NET 4.0