sql >> Databáze >  >> RDS >> Sqlserver

Jak vytvořit omezení cizího klíče pomocí možnosti ON DELETE SET NULL v SQL Server - SQL Server / Výukový program TSQL, část 81

Scénář:

Pracujete jako vývojář SQL Serveru, potřebujete vytvořit dvě tabulky se vztahem primárního a cizího klíče. Chcete vytvořit omezení cizího klíče s nastavením, zda bude záznam smazán z referenční tabulky (tabulka sloupců primárního klíče), neměl by být odstraněn z nadřazené tabulky (tabulka omezení cizího klíče), místo toho by měla být hodnota aktualizována na Null.

Řešení:

K implementaci výše uvedeného požadavku můžeme použít ON DELETE SET NULL s definicí omezení cizího klíče.
Pojďme provést pomocí níže uvedeného skriptu.
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)
 
 
 Zkontrolujte data v tabulkách pomocí výběrového dotazu 
Jak vytvořit omezení cizího klíče pomocí ON DELETE SET NULL na serveru SQL


Pojďme odstranit řádek z odkazované tabulky (Tabulka sloupců primárního klíče) a zkontrolujte, zda záznamy stále existují v nadřazené tabulce (tabulka omezení cizího klíče) a hodnota sloupce je aktualizována na hodnotu Null.
    --Delete the Record from Referenced Table(PK Column Table)
    Delete from dbo.Customer
    where CustomerId=1

Jak používat možnost ON DELETE SET NULL s omezením cizího klíče na serveru SQL

Jak vidíme, záznam je odstraněn z referenční tabulky (Tabulka sloupců primárního klíče), ale stále je přítomen v nadřazené tabulce (Tabulka omezení cizích klíčů), ale hodnota je podle očekávání aktualizována na hodnotu Null.

Video ukázka:Jak vytvořit omezení cizího klíče pomocí možnosti ON DELETE SET NULL v SQL Server
  1. Jádro Entity Framework – Obsahuje Rozlišují se malá a velká písmena?

  2. Jak připojit PHP k MySQL

  3. Jak zálohovat a obnovit databázi MySQL?

  4. Vyberte Dotaz k načtení řádků v MySQL