Cenário:
Você está trabalhando como desenvolvedor do SQL Server, você precisa criar duas tabelas com Relação de Chave Primária - Estrangeira. Você deseja criar uma restrição de chave estrangeira com a configuração se o registro for excluído da tabela referenciada (tabela de coluna de chave primária), ele também deve ser excluído da tabela pai (tabela de restrição de chave estrangeira).Solução:
O SQL Server nos permite usar a configuração com restrição de chave estrangeira chamada On DELETE CASCADE. Se esta regra for implementada, sempre que o registro for excluído da Tabela Referenciada (Tabela de Coluna de Chave Primária), ele também será excluído da Tabela Pai (Tabela de Restrição de Chave Estrangeira).Vamos testar este cenário com o script abaixo.
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') Verifique os dados nas tabelas usando a consulta de seleção.
![]() |
| Como habilitar a regra ON Delete CASCADE com restrição de chave estrangeira no SQL Server |
Vamos excluir a linha da Tabela Referenciada (Tabela de Coluna de Chave Primária) e ver se ela também exclui da Tabela Pai (Tabela de Restrições de Chave Estrangeira)
--Delete the Record from Referenced Table(PK Column Table)
Delete from dbo.Customer
where CustomerId=1 Verifique as tabelas novamente para ver se o registro foi excluído de ambas as tabelas devido à regra ON Delete Cascade na restrição de chave estrangeira.
![]() |
| Como usar ON Delete Cascade para excluir registros de várias tabelas na tabela do SQL Server |
Como podemos ver que os registros são deletados de ambas as tabelas devido a regra ON DELETE CASCADE da Restrição de Chave Estrangeira.
Demonstração em vídeo:como criar restrição de chave estrangeira com ON DELETE CASCADE no SQL Server
