Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2016 (13.x) i nowsze
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL database w Microsoft Fabric
Ograniczenia klucza obcego dla replikacji w programie SQL Server można wyłączyć przy użyciu programu SQL Server Management Studio lub Języka Transact-SQL. Może to być przydatne, jeśli publikujesz dane z poprzedniej wersji programu SQL Server.
Notatka
Jeśli tabela jest publikowana przy użyciu replikacji, ograniczenia klucza obcego są automatycznie wyłączone dla operacji wykonywanych przez agentów replikacji. Opcja NOT FOR REPLICATION jest domyślnie ustawiona dla ograniczeń klucza obcego i ograniczeń sprawdzających; ograniczenia są wymuszane dla operacji użytkownika, jednakże nie dla operacji wykonywanych przez agenta. Gdy agent replikacji wykonuje operację wstawiania, aktualizowania lub usuwania dla subskrybenta, ograniczenie nie jest zaznaczone; Jeśli użytkownik wykonuje operację wstawiania, aktualizowania lub usuwania, ograniczenie jest sprawdzane. Ograniczenie jest wyłączone dla agenta replikacji, ponieważ ograniczenie zostało już zaewidencjonowane w programie Publisher, gdy dane zostały pierwotnie wstawione, zaktualizowane lub usunięte.
uprawnienia
Aby korzystać z tabeli, wymagane jest uprawnienie ALTER.
Korzystanie z programu SQL Server Management Studio
Aby wyłączyć ograniczenie klucza obcego na potrzeby replikacji
W Eksploratorze Obiektów , rozwiń tabelę z ograniczeniem klucza obcego, który chcesz zmodyfikować, a następnie rozwiń folder Klucze.
Kliknij prawym przyciskiem myszy ograniczenie klucza obcego, a następnie wybierz pozycję Modyfikuj.
W oknie dialogowym Relacje klucza obcego wybierz wartość Nie dla Wymuszanie podczas replikacji.
Wybierz , a następnie Zamknij.
Korzystanie z Transact-SQL
Aby wyłączyć ograniczenie klucza obcego na potrzeby replikacji
Aby wykonać to zadanie w języku Transact-SQL, wykonaj skrypt ograniczenia klucza obcego. W Eksploratorze Obiektów , rozwiń tabelę z ograniczeniem klucza obcego, który chcesz zmodyfikować, a następnie rozwiń folder Klucze.
Kliknij prawym przyciskiem myszy ograniczenie klucza obcego, wybierz pozycję Skryptuj klucz jako, a następnie wybierz pozycję DROP i CREATE To, a następnie wybierz pozycję Nowe okno edytora zapytań. Wynikowy skrypt powinien wyglądać podobnie do poniższego przykładu z przykładowej bazy danych
AdventureWorks2022
: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] GO
W
ALTER TABLE ... ADD CONSTRAINT
części skryptu zmodyfikuj nowe ograniczenie klucza obcego i określ opcję NIE DOTYCZĄCĄ REPLIKACJI. Na przykład: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