Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre: SQL Server 2016 (13.x) û későbbi verziók
: Azure SQL Database,
Azure SQL Managed Instance
,Azure Synapse Analytics
Platform System (PDW)
SQL database in Microsoft Fabric
Az SQL Serveren történő replikáció idegenkulcs-korlátozásait az SQL Server Management Studio vagy a Transact-SQL használatával tilthatja le. Ez akkor lehet hasznos, ha az SQL Server egy korábbi verziójából tesz közzé adatokat.
Note
Ha egy táblát replikációval tesznek közzé, a replikációs ügynökök által végrehajtott műveletek esetén a rendszer automatikusan letiltja az idegenkulcs-korlátozásokat. A NEM REPLIKÁLÁS beállítás alapértelmezés szerint meg van adva az idegenkulcs-korlátozásokhoz és az ellenőrzési kényszerekhez; a korlátozások a felhasználói műveletekre vannak kényszerítve, ügynökműveletekre nem. Ha egy replikációs ügynök beszúrást, frissítést vagy törlést végez egy előfizetőnél, a korlátozás nincs bejelölve; ha egy felhasználó beszúrást, frissítést vagy törlést végez, a korlátozás be van jelölve. A korlátozás le van tiltva a replikációs ügynök esetében, mert a korlátozást már ellenőrizték a Közzétevőnél, amikor az adatokat eredetileg beszúrták, frissítették vagy törölték.
engedélyek
Az ALTER jogosultság szükséges a tábla módosításához.
Az SQL Server Management Studio használata
A replikáció idegenkulcs-korlátozásának letiltása
Az Objektumkezelő ablaktáblábanbontsa ki a módosítani kívánt idegen kulcsot tartalmazó táblát, majd bontsa ki a Kulcsok mappát.
Kattintson a jobb gombbal az idegenkulcs-korlátozásra, majd válassza a Módosításlehetőséget.
Az Idegenkulcs-kapcsolatok párbeszédpanelen válassza a Nincs értéket a Kényszerítés replikációhoz.
Válassza a Bezárás lehetőséget.
Használd a Transact-SQL-t
A replikáció idegenkulcs-korlátozásának letiltása
Ha ezt a feladatot a Transact-SQL-ben szeretné elvégezni, szkriptelje ki az idegenkulcs-korlátozást. Az Objektumkezelő ablaktáblábanbontsa ki a módosítani kívánt idegen kulcsot tartalmazó táblát, majd bontsa ki a Kulcsok mappát.
Kattintson a jobb gombbal az idegenkulcs-korlátozásra, a lenyíló menüből válassza a Szkript kulcsaként, majd a következő lenyíló menüből a DROP és CREATE To lehetőséget, végül válassza ki az Új lekérdezésszerkesztő ablak lehetőséget. Az eredményként kapott szkriptnek az alábbi példához hasonlóan kell kinéznie a
AdventureWorks2025mintaadatbázisban: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] GOA szkript
ALTER TABLE ... ADD CONSTRAINTrészében módosítsa az új idegenkulcs-korlátozást, és adja meg a NEM REPLIKÁLÁS beállítást. Például: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