Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2016 (13.x) en latere versies
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL database in Microsoft Fabric
U kunt een foreign key-beperking uitschakelen tijdens INSERT- en UPDATE-transacties in SQL Server met SQL Server Management Studio of Transact-SQL. Gebruik deze optie als u weet dat nieuwe gegevens de bestaande beperking niet schenden of als de beperking alleen van toepassing is op de gegevens die al in de database aanwezig zijn.
Beperkingen en beperkingen
Nadat u deze beperkingen hebt uitgeschakeld, worden toekomstige invoegingen of updates van de kolom niet gevalideerd op basis van de beperkingsvoorwaarden.
Permissions
Vereist ALTER-toestemming voor de tabel.
SQL Server Management Studio gebruiken
Een foreign key-constraint uitschakelen voor INSERT- en UPDATE-statements
Vouw in Objectverkennerde tabel uit met de beperking en vouw vervolgens de map Sleutels uit.
Klik met de rechtermuisknop op de beperking en selecteer Wijzigen.
Selecteer in het raster onder Table Designer'Enforce Foreign Key Constraint' en kies nee uit de dropdownlijst.
Selecteer Sluitaf.
Als u de beperking desgewenst opnieuw wilt inschakelen, moet u de bovenstaande stappen omkeren. Selecteer Afdwingen van vreemde sleutelbeperking en kies Ja uit de dropdownlijst.
Om de beperking te vertrouwen door de bestaande gegevens in de relatie van de vreemde sleutel te controleren, kies je Bestaande gegevens controleren bij creatie of opnieuw inschakelen en kies je Ja uit de dropdownlijst. Dit zorgt ervoor dat de restrictie voor vreemde sleutels wordt vertrouwd.
- Als Bestaande gegevens controleren bij het maken of opnieuw inschakelen van is ingesteld op Geen, dan controleert de externe sleutel geen bestaande gegevens wanneer deze opnieuw wordt ingeschakeld. De optimalisatiefunctie voor query's kan daarom geen potentiële prestatieverbeteringen overwegen. Aanbevolen worden vertrouwde buitenlandse sleutels omdat ze kunnen worden gebruikt om uitvoeringsplannen te vereenvoudigen met aannames gebaseerd op de beperking van de buitenlandse sleutel. Als u wilt controleren of vreemde sleutels in uw database worden vertrouwd, zie een voorbeeldquery verderop in dit artikel.
Gebruik Transact-SQL
Een foreign key-constraint uitschakelen voor INSERT- en UPDATE-statements
Maak in Objectverkennerverbinding met een instantie van de Database-engine.
Selecteer op de standaardbalk Nieuwe query.
Kopieer en plak het volgende voorbeeld in het queryvenster en selecteer uitvoeren.
USE AdventureWorks2022; GO ALTER TABLE Purchasing.PurchaseOrderHeader NOCHECK CONSTRAINT FK_PurchaseOrderHeader_Employee_EmployeeID; GOAls u de beperking desgewenst opnieuw wilt inschakelen, kopieert en plakt u het volgende voorbeeld in het queryvenster en selecteert u uitvoeren.
USE AdventureWorks2022; GO ALTER TABLE Purchasing.PurchaseOrderHeader CHECK CONSTRAINT FK_PurchaseOrderHeader_Employee_EmployeeID; GOControleer of de beperking in uw omgeving zowel betrouwbaar als ingeschakeld is. Als
is_not_trusted= 1, wordt de buitenlandse sleutel niet gecontroleerd op bestaande gegevens wanneer deze opnieuw wordt ingeschakeld of aangemaakt. De optimalisatiefunctie voor query's kan daarom geen potentiële prestatieverbeteringen overwegen. Aanbevolen worden vertrouwde buitenlandse sleutels omdat ze kunnen worden gebruikt om uitvoeringsplannen te vereenvoudigen met aannames gebaseerd op de beperking van de buitenlandse sleutel. Kopieer en plak het volgende voorbeeld in het queryvenster en selecteer uitvoeren.SELECT o.name, fk.name, fk.is_not_trusted, fk.is_disabled FROM sys.foreign_keys AS fk INNER JOIN sys.objects AS o ON fk.parent_object_id = o.object_id WHERE fk.name = 'FK_PurchaseOrderHeader_Employee_EmployeeID'; GOStel de foreign key-beperking in op vertrouwd indien de bestaande gegevens in de tabel voldoen aan deze beperking. Als u de buitenlandse sleutel wilt instellen op toevertrouwd, gebruikt u het volgende script om de beperking voor buitenlandse sleutels opnieuw te vertrouwen, waarbij u let op de aanvullende
WITH CHECK-syntaxis. Kopieer en plak het volgende voorbeeld in het queryvenster en selecteer uitvoeren.ALTER TABLE [Purchasing].[PurchaseOrderHeader] WITH CHECK CHECK CONSTRAINT FK_PurchaseOrderHeader_Employee_EmployeeID; GO