Сценарий:
Вие работите като разработчик на SQL Server, трябва да създадете две таблици с връзка първичен - външен ключ. Искате да създадете ограничение на външния ключ с настройка, ако записът ще бъде изтрит от таблица с препратки (таблица с колони с първичен ключ), трябва да бъде изтрит и от родителска таблица ( таблица с ограничения на външния ключ).Решение:
SQL Server ни позволява да използваме настройката с ограничение на външния ключ, наречена On DELETE CASCADE. Ако това правило се приложи, всеки път, когато записът се изтрие от таблицата с препратки (таблица с колони с първичен ключ), той също ще бъде изтрит от родителска таблица ( таблица с ограничения на външния ключ).Нека тестваме този сценарий със скрипт по-долу.
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') Проверете данните в таблиците, като използвате заявка за избор.
![]() |
| Как да активирате ON Delete CASCADE правило с ограничение на външния ключ в SQL Server |
Нека изтрием реда от таблицата с препратки (таблица с колони с първичен ключ) и да видим дали той също така се изтрива от родителска таблица ( таблица с ограничения на външния ключ)
--Delete the Record from Referenced Table(PK Column Table)
Delete from dbo.Customer
where CustomerId=1 Проверете отново таблиците, за да видите дали записът е изтрит и от двете таблици поради ON Delete Cascade правило при ограничение на външния ключ.
![]() |
| Как да използвате ON Delete Cascade за изтриване на записи от множество таблици в таблица на SQL Server |
Както можем да видим, че записите са изтрити и от двете таблици поради правилото ON DELETE CASCADE на ограничението на външния ключ.
Видео демонстрация:Как да създадете ограничение за външен ключ с ON DELETE CASCADE в SQL Server
