Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да създадете ограничение на външния ключ с ON UPDATE CASCADE в SQL Server - SQL Server / TSQL Урок, част 79

Сценарий:

В предишни публикации научаваме, че ако имаме ограничение за външен ключ с настройка по подразбиране и се опитаме да актуализираме стойността в колоната в справочната таблица, която се използва като референтна колона в ограничението на външния ключ, получаваме грешка. Обсъдихме множество начини за справяне със ситуацията, моля, проверете тази връзка.
Ограничението на външния ключ предоставя опцията за задаване на каскадно действие, можем да създадем ограничение на външния ключ с каскадна актуализация.
Ако се използват настройките за каскадно актуализиране, когато актуализираме стойността в таблицата с препратки, тя също ще актуализира стойността в колоната родителска таблица (таблица с външни ключове).
Нека тестваме този сценарий. Създайте две таблици dbo.Customer и dbo.Orders с връзка с външни ключове чрез даден скрипт

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)
 
 
 Нека проверим данните в таблици, като използваме select query
Как да създадете ограничение на външния ключ с каскада за актуализиране в SQL Server


Нека стартираме нашето изявление за актуализация на CustomerId в таблицата dbo.Customer и да видим дали той също актуализира стойността на колоната в dbo.Orders за Customer_id.
    update dbo.Customer
    set Customerid=100
 
 Нека отново проверим данните в нашите таблици 
Как да активирате каскадно актуализиране с ограничение на външния ключ в SQL Server

Както можем да видим, че стойността се актуализира и в колоната dbo.Orders.Customer_id.


Видео демонстрация:Как да създадете ограничение на външния ключ с ON UPDATE CASCADE в 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. 2 начина за връщане на списък с тригери в база данни на SQL Server с помощта на T-SQL

  2. Магазинът за заявки на SQL Server

  3. Кодът на Entity Framework е бавен, когато се използва Include() много пъти

  4. SQL Server ИЗБЕРЕТЕ В @променлива?

  5. Първични ключове в SQL Server