Partager via


Désactiver les contraintes de clé étrangère avec des instructions INSERT et UPDATE

Vous pouvez désactiver une contrainte de clé étrangère pendant les transactions INSERT et UPDATE dans SQL Server 2012 à l'aide de SQL Server Management Studio ou de Transact-SQL. Utilisez cette option si vous savez que de nouvelles données violeront la contrainte existante ou si la contrainte s'applique uniquement aux données déjà dans la base de données.

Dans cette rubrique

  • Avant de commencer :

    Limitations et restrictions

    Sécurité

  • Pour désactiver une contrainte de clé étrangère pour les instructions INSERT et UPDATE, utilisez :

    SQL Server Management Studio

    Transact-SQL

Avant de commencer

Limitations et restrictions

Une fois ces contraintes désactivées, les insertions ou les mises à jour ultérieures sur la colonne ne sont pas validées par rapport aux conditions de la contrainte.

Sécurité

Autorisations

Requiert une autorisation ALTER sur la table.

Icône de flèche utilisée avec le lien Retour en haut[Top]

Utilisation de SQL Server Management Studio

Pour désactiver une contrainte de clé étrangère avec les instructions INSERT et UPDATE

  1. Dans l'Explorateur d'objets, développez la table avec la contrainte, puis développez le dossier Clés.

  2. Cliquez avec le bouton droit sur la contrainte et sélectionnez Modifier.

  3. Dans la grille sous Concepteur de tables, cliquez sur Appliquer la contrainte de clé étrangère et sélectionnez Non dans le menu déroulant.

  4. Cliquez sur Fermer.

Icône de flèche utilisée avec le lien Retour en haut[Top]

Utilisation de Transact-SQL

Pour désactiver une contrainte de clé étrangère avec les instructions INSERT et UPDATE

  1. Dans l'Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.

  2. Dans la barre d'outils standard, cliquez sur Nouvelle requête.

  3. Copiez et collez les exemples suivants dans la fenêtre de requête, puis cliquez sur Exécuter.

    USE AdventureWorks2012;
    GO
    ALTER TABLE Purchasing.PurchaseOrderHeader
    NOCHECK CONSTRAINT FK_PurchaseOrderHeader_Employee_EmployeeID;
    GO
    

Pour plus d'informations, consultez ALTER TABLE (Transact-SQL).

Icône de flèche utilisée avec le lien Retour en haut[Top]