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

Jak vytvořit omezení cizího klíče pomocí ON DELETE CASCADE v SQL Server - SQL Server / Výukový program TSQL, část 80

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 odstraněn z referenční tabulky (Tabulka sloupců primárního klíče), měl by být odstraněn také z nadřazené tabulky (Tabulka omezení cizího klíče).

Řešení:

SQL Server nám umožňuje použít nastavení s omezením cizího klíče s názvem On DELETE CASCADE. Pokud je toto pravidlo implementováno, vždy, když je záznam odstraněn z referenční tabulky (Tabulka sloupců primárního klíče), bude odstraněn také z nadřazené tabulky (Tabulka omezení cizích klíčů).
Pojďme otestovat tento scénář 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 CASCADE
    )

    --insert sample data
     insert into dbo.Customer 
    (CustomerId,FName, LName,SSN)
     values
    (1,'Aamir','Shahzad','000-000-00')
 
 
 Zkontrolujte data v tabulkách pomocí výběrového dotazu.
Jak povolit pravidlo ON Delete CASCADE s omezením cizího klíče v SQL Server

Pojďme odstranit řádek z odkazované tabulky (Tabulka sloupců primárního klíče) a uvidíme, zda se odstraní také z nadřazené tabulky (Tabulka omezení cizího klíče)

    --Delete the Record from Referenced Table(PK Column Table)
    Delete from dbo.Customer
    where CustomerId=1


Znovu zkontrolujte tabulky a zjistěte, zda byl záznam odstraněn z obou tabulek kvůli pravidlu ON Delete Cascade na omezení cizího klíče.
Jak pomocí ON Delete Cascade odstranit záznamy z více tabulek v tabulce SQL Server

Jak vidíme, záznamy jsou odstraněny z obou tabulek kvůli pravidlu ON DELETE CASCADE omezení cizího klíče.

Video ukázka:Jak vytvořit omezení cizího klíče pomocí ON DELETE CASCADE v SQL Server
  1. oracle - jaké výroky je třeba spáchat?

  2. SQL:Seřaďte podle priority, ale nulu uveďte jako poslední

  3. Jak vytvořit uživatele v Oracle a přiřadit oprávnění

  4. Předat hodnoty načtené ze souboru jako vstup do SQL dotazu v Oracle