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 Server INSERT és UPDATE tranzakciói során letilthat egy idegenkulcs-korlátozást az SQL Server Management Studio vagy a Transact-SQL használatával. Akkor használja ezt a lehetőséget, ha tudja, hogy az új adatok nem fogják megsérteni a meglévő kényszert, vagy ha a korlátozás csak az adatbázisban már szereplő adatokra vonatkozik.
Korlátozások és korlátozások
A korlátozások letiltása után az oszlop jövőbeli beszúrásai vagy frissítései nem lesznek érvényesítve a kényszerfeltételek alapján.
engedélyek
ALTER engedély szükséges az táblához.
Az SQL Server Management Studio használata
Az INSERT és AZ UPDATE utasítások idegenkulcs-korlátozásának letiltása
Object Explorerablakában nyissa meg a korlátozással rendelkező táblát, majd nyissa meg a Kulcsok mappát.
Kattintson a jobb gombbal a korlátozásra, és válassza a módosítása lehetőséget.
Az Táblatervezőalatti rácson válassza a Idegenkulcs-korlátozás kényszerítése lehetőséget, majd a legördülő menüben válassza Nincs lehetőséget.
Válassza a Bezárás lehetőséget.
Ha szükség esetén újra engedélyezni szeretné a kényszert, fordítsa vissza a fenti lépéseket. Válassza a Külső kulcs kényszerének kényszerítése lehetőséget, majd válassza Igen lehetőséget a legördülő menüből.
Ha meg szeretné erősíteni a kényszert az idegen kulcs kapcsolat adatainak ellenőrzésével, válassza a Meglévő adatok ellenőrzése létrehozáskor vagy újraengedélyezéskor opciót, majd válassza ki a Igen lehetőséget a legördülő menüből. Ez biztosítaná, hogy az idegenkulcs-korlátozás megbízható legyen.
- Ha Meglévő adatok ellenőrzése létrehozáskor vagy újraengedélyezéskorNincsértékre van állítva, az idegen kulcs nem vizsgálja a meglévő adatokat, amikor újraengedélyezésre kerül. A lekérdezésoptimalizáló ezért nem tudja figyelembe venni a teljesítmény esetleges javulását. A megbízható külföldi kulcsok azért ajánlottak, mert a végrehajtási tervek egyszerűsíthetők a külső kulcs kényszerén alapuló feltételezésekkel. Ha ellenőrizni szeretné, hogy a külső kulcsok megbízhatóak-e az adatbázisban, tekintse meg a cikk későbbi részében található mintalekérdezéseket.
Használd a Transact-SQL-t
Az INSERT és AZ UPDATE utasítások idegenkulcs-korlátozásának letiltása
Az Object Explorer-ben csatlakozzon az adatbázismotor egy példányához.
A Standard sávon válassza Új lekérdezéslehetőséget.
Másolja és illessze be a következő példát a lekérdezési ablakba, és válassza a Végrehajtáslehetőséget.
USE AdventureWorks2022; GO ALTER TABLE Purchasing.PurchaseOrderHeader NOCHECK CONSTRAINT FK_PurchaseOrderHeader_Employee_EmployeeID; GOHa szükség esetén újra engedélyezni szeretné a kényszert, másolja és illessze be a következő példát a lekérdezési ablakba, és válassza a Végrehajtáslehetőséget.
USE AdventureWorks2022; GO ALTER TABLE Purchasing.PurchaseOrderHeader CHECK CONSTRAINT FK_PurchaseOrderHeader_Employee_EmployeeID; GOEllenőrizze, hogy a környezet kényszere megbízható-e és engedélyezve van-e. Ha
is_not_trusted= 1, akkor az idegen kulcs nem ellenőrzi a meglévő adatokat az újraengedélyezésekor vagy újbóli létrehozásakor. A lekérdezésoptimalizáló ezért nem tudja figyelembe venni a teljesítmény esetleges javulását. A megbízható külföldi kulcsok azért ajánlottak, mert a végrehajtási tervek egyszerűsíthetők a külső kulcs kényszerén alapuló feltételezésekkel. Másolja és illessze be a következő példát a lekérdezési ablakba, és válassza a Végrehajtáslehetőséget.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'; GOAz idegenkulcs-korlátozást megbízhatónak kell beállítania, ha a tábla meglévő adatai megfelelnek az idegenkulcs-korlátozásnak. Ha az idegen kulcsot megbízhatónak szeretné beállítani, az alábbi szkripttel ismét megbízhat az idegenkulcs-korlátozásban, figyelembe adva a további
WITH CHECKszintaxist. Másolja és illessze be a következő példát a lekérdezési ablakba, és válassza a Végrehajtáslehetőséget.ALTER TABLE [Purchasing].[PurchaseOrderHeader] WITH CHECK CHECK CONSTRAINT FK_PurchaseOrderHeader_Employee_EmployeeID; GO