sql >> Database >  >> RDS >> Sqlserver

Hoe een externe sleutelbeperking te maken met ON DELETE SET NULL-optie in SQL Server - SQL Server / TSQL-zelfstudie deel 81

Scenario:

U werkt als SQL Server-ontwikkelaar, u moet twee tabellen maken met Primary -Foreign Key Relationship. U wilt een Foreign Key Constraint maken met de instelling als record wordt verwijderd uit de tabel waarnaar wordt verwezen (Primary Key Column Table), het mag niet worden verwijderd uit de bovenliggende tabel (Foreign Key Constraint Table) in plaats daarvan moet de waarde worden bijgewerkt naar Null.

Oplossing:

We kunnen ON DELETE SET NULL gebruiken met Foreign Key Constraint-definitie om bovenstaande vereiste te implementeren.
Laten we het onderstaande script gebruiken.
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)
 
 
 Controleer de gegevens in tabellen met Selectquery 
Hoe maak je een Foreign Key Constraint met ON DELETE SET NULL in SQL Server


Laten we de rij verwijderen uit de tabel waarnaar wordt verwezen (kolomtabel met primaire sleutel) en controleren of records nog steeds bestaan ​​in de bovenliggende tabel (beperkingstabel voor externe sleutels) en de kolomwaarde wordt bijgewerkt naar Null.
    --Delete the Record from Referenced Table(PK Column Table)
    Delete from dbo.Customer
    where CustomerId=1

De optie ON DELETE SET NULL gebruiken met Foreign Key Constraint in SQL Server

Zoals we kunnen zien, is het record verwijderd uit de tabel waarnaar wordt verwezen (kolomtabel met primaire sleutel) maar nog steeds aanwezig in de bovenliggende tabel (tabel met beperkingen voor externe sleutels), maar wordt de waarde zoals verwacht bijgewerkt naar Null.

Videodemo:beperking van externe sleutels maken met de optie ON DELETE SET NULL in SQL Server
  1. 9 echt handige MySQL-datumfuncties die gemakkelijk te onthouden zijn

  2. Kubernetes gebruiken om PostgreSQL te implementeren

  3. Common Sense-licentiewijzigingen voor SQL Server 2014 Standard Edition

  4. Problemen oplossen AlwaysOn - Soms zijn er veel paar ogen nodig