Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak utworzyć ograniczenie klucza obcego z ON UPDATE CASCADE w SQL Server - SQL Server / TSQL Tutorial, część 79

Scenariusz:

Z poprzednich postów dowiadujemy się, że jeśli mamy Ograniczenie klucza obcego z ustawieniem domyślnym i spróbujemy zaktualizować wartość w kolumnie w tabeli referencyjnej, która jest używana jako kolumna referencyjna w ograniczeniu klucza obcego, otrzymujemy błąd. Omówiliśmy wiele sposobów radzenia sobie z tą sytuacją, sprawdź ten link.
Ograniczenie klucza obcego zapewnia opcję ustawienia akcji kaskadowej, możemy utworzyć ograniczenie klucza obcego z aktualizacją kaskadową.
Jeśli używana jest aktualizacja ustawień kaskadowych, gdy aktualizujemy wartość w tabeli z odniesieniem , zaktualizuje ona również wartość w kolumnie tabeli nadrzędnej (tabela kluczy obcych).
Przetestujmy ten scenariusz. Utwórz dwie tabele dbo.Klient i dbo.Zamówienia z relacją klucza obcego według podanego skryptu

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)
 
 
 Sprawdźmy dane w tabelach za pomocą select query
Jak utworzyć ograniczenie klucza obcego za pomocą kaskadowej aktualizacji w SQL Server


Uruchommy naszą instrukcję aktualizacji dla CustomerId w tabeli dbo.Customer i zobaczmy, czy aktualizuje ona również wartość kolumny w dbo.Orders dla Customer_id.
    update dbo.Customer
    set Customerid=100
 
 Sprawdźmy jeszcze raz dane w naszych tabelach 
Jak włączyć aktualizację kaskadową z ograniczeniem klucza obcego w SQL Server

Jak widać, wartość jest aktualizowana również w kolumnie dbo.Orders.Customer_id.


Prezentacja wideo:Jak utworzyć ograniczenie klucza obcego za pomocą ON UPDATE CASCADE w programie SQL Server
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak tworzyć połączone serwery baz danych i wysyłać do nich zapytania w programie SQL Server?

  2. Jak wyświetlić plan wykonywania zapytań w Azure Data Studio (SQL Server)

  3. Usuń klucz podstawowy za pomocą skryptu w bazie danych SQL Server

  4. Które zapytanie SQL jest szybsze? Filtruj według kryteriów przyłączenia lub klauzuli Gdzie?

  5. Architektura programu SQL Server AlwaysOn (grupa dostępności) i instalacja krok po kroku — 4 kroki dodawania i usuwania bazy danych