Cenário:
Nos posts anteriores, aprendemos que se tivermos Restrição de chave estrangeira com configuração padrão e tentarmos atualizar o valor na coluna na Tabela de Referência que é usada como Coluna de Referência na Restrição de Chave Estrangeira, obtemos um erro. Discutimos várias maneiras de lidar com a situação, verifique este link.Restrição de chave estrangeira fornece a opção de definir a ação em cascata, podemos criar restrição de chave estrangeira com atualização em cascata.
Se as configurações de atualização em cascata forem usadas, quando atualizarmos o valor na tabela referenciada, ela também atualizará o valor na coluna da tabela pai (tabela de chave estrangeira).
Vamos testar este cenário. Crie duas tabelas dbo.Customer e dbo.Orders com Relação de Chave Estrangeira por determinado script
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) Vamos verificar os dados nas tabelas usando a consulta de seleção
![]() |
| Como criar restrição de chave estrangeira com atualização em cascata no SQL Server |
Vamos executar nossa instrução de atualização em CustomerId na tabela dbo.Customer e ver se ela também atualiza o valor da coluna em dbo.Orders para Customer_id.
update dbo.Customer
set Customerid=100 Vamos verificar os dados novamente em nossas tabelas
![]() |
| Como habilitar a atualização em cascata com restrição de chave estrangeira no SQL Server |
Como podemos ver que o valor também é atualizado na coluna dbo.Orders.Customer_id.
Demonstração em vídeo:Como criar restrição de chave estrangeira com ON UPDATE CASCADE no SQL Server

