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

Sådan oprettes fremmednøglebegrænsning med ON DELETE SET NULL-indstillingen i SQL Server - SQL Server / TSQL Tutorial Del 81

Scenarie:

Du arbejder som SQL Server-udvikler, du skal oprette to tabeller med Primary-Foreign Key Relationship. Du vil oprette Foreign Key Constraint med indstilling, hvis posten slettes fra referencetabel (primær nøglekolonnetabel), den skal ikke slettes fra overordnet tabel (foreign Key Constraint-tabel), i stedet skal værdien opdateres til Null.

Løsning:

Vi kan bruge ON DELETE SET NULL med Foreign Key Constraint definition til at implementere ovenstående krav.
Lad os udføre ved at bruge 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 SET NULL
    )

    --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)
 
 
 Tjek dataene i tabeller ved at bruge Vælg forespørgsel 
Sådan opretter du fremmednøglebegrænsning med ON DELETE SET NULL i SQL Server


Lad os slette rækken fra referencetabel (tabel med primær nøglekolonne) og kontrollere, om poster stadig eksisterer i overordnet tabel (tabel med fremmednøglebegrænsninger), og kolonneværdien er opdateret til Null.
    --Delete the Record from Referenced Table(PK Column Table)
    Delete from dbo.Customer
    where CustomerId=1

Sådan bruges ON DELETE SET NULL-indstillingen med Foreign Key Constraint i SQL Server

Som vi kan se, er posten slettet fra referencetabel (tabel med primær nøglekolonne), men stadig til stede i overordnet tabel (tabel med udenlandsk nøglebegrænsning), men værdien er opdateret til Null som forventet.

Videodemo:Sådan oprettes en begrænsning af fremmednøgle med ON SLET SET NULL-indstillingen i SQL Server
  1. Kan du VÆLGE alt, undtagen 1 eller 2 felter, uden forfatterkrampe?

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

  3. Hvordan får man sidste indsættelses-id i Oracle ved hjælp af MyBatis?

  4. Sådan nulstiller du MySQL Root Users Password