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