Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões posteriores
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Base de dados SQL no Microsoft Fabric
Você pode desabilitar restrições de chave estrangeira para replicação no SQL Server usando o SQL Server Management Studio ou o Transact-SQL. Isso pode ser útil se você estiver publicando dados de uma versão anterior do SQL Server.
Note
Se uma tabela for publicada usando replicação, as restrições de chave estrangeira serão automaticamente desabilitadas para operações executadas por agentes de replicação. A opção NOT FOR REPLICATION é especificada por padrão para restrições de chave estrangeira e restrições de verificação; As restrições são impostas para operações de usuário, mas não operações de agente. Quando um agente de replicação executa uma inserção, atualização ou exclusão em um Assinante, a restrição não é verificada; Se um usuário executar uma inserção, atualização ou exclusão, a restrição será verificada. A restrição está desabilitada para o agente de replicação porque a restrição já estava verificada no Publisher quando os dados foram originalmente inseridos, atualizados ou excluídos.
permissões
Requer permissão ALTER na tabela.
Usar o SQL Server Management Studio
Para desabilitar uma restrição de chave estrangeira para replicação
No Explorador de Objetos , expanda a tabela com a restrição de chave estrangeira que deseja modificar e expanda, em seguida, a pasta Chaves.
Clique com o botão direito do rato na restrição de chave estrangeira e, em seguida, selecione Modificar.
Na caixa de diálogo Relações de Chave Estrangeira, selecione um valor de Sem para Enforce For Replication.
Selecione Fechar.
Utilize o Transact-SQL
Para desabilitar uma restrição de chave estrangeira para replicação
Para executar essa tarefa no Transact-SQL, gere um script para a restrição de chave estrangeira. No Explorador de Objetos , expanda a tabela com a restrição de chave estrangeira que deseja modificar e expanda, em seguida, a pasta Chaves.
Clique com o botão direito do rato na restrição de chave estrangeira, selecione Script Key As, depois selecione DROP e CREATE To, e depois selecione Nova Janela do Editor de Consultas. O script resultante deve ser semelhante ao exemplo a seguir do banco de dados de exemplo
AdventureWorks2025:ALTER TABLE [Sales].[SalesTerritoryHistory] DROP CONSTRAINT [FK_SalesTerritoryHistory_SalesPerson_BusinessEntityID] GO ALTER TABLE [Sales].[SalesTerritoryHistory] WITH CHECK ADD CONSTRAINT [FK_SalesTerritoryHistory_SalesPerson_BusinessEntityID] FOREIGN KEY([BusinessEntityID]) REFERENCES [Sales].[SalesPerson] ([BusinessEntityID]); GO ALTER TABLE [Sales].[SalesTerritoryHistory] CHECK CONSTRAINT [FK_SalesTerritoryHistory_SalesPerson_BusinessEntityID] GONa parte
ALTER TABLE ... ADD CONSTRAINTdo script, modifique a nova restrição de chave estrangeira e especifique a opção NOT FOR REPLICATION. Por exemplo:ALTER TABLE [Sales].[SalesTerritoryHistory] DROP CONSTRAINT [FK_SalesTerritoryHistory_SalesPerson_BusinessEntityID] GO ALTER TABLE [Sales].[SalesTerritoryHistory] WITH CHECK ADD CONSTRAINT [FK_SalesTerritoryHistory_SalesPerson_BusinessEntityID] FOREIGN KEY([BusinessEntityID]) REFERENCES [Sales].[SalesPerson] ([BusinessEntityID]) NOT FOR REPLICATION; --added to disable constraint for replication GO ALTER TABLE [Sales].[SalesTerritoryHistory] CHECK CONSTRAINT [FK_SalesTerritoryHistory_SalesPerson_BusinessEntityID] GO