Share via


Désactiver des contraintes de validation avec des instructions INSERT et UPDATE

S’applique à : SQL Server 2016 (13.x) et versions ultérieures Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Vous pouvez désactiver une contrainte de validation pour des transactions INSERT et UPDATE dans SQL Server à l’aide de SQL Server Management Studio ou de Transact-SQL. Une fois les contraintes de validation 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. 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.

Pour plus d’informations, consultez Contraintes de validation.

Notes

Les contraintes de validation sont activées et désactivées avec une instruction ALTER TABLE, qui nécessite toujours un verrou de modification du schéma (Sch-M). Les verrous Sch-M empêchent l’accès simultané à la table. Pour plus d’informations, consultez Verrous et ALTER TABLE.

Autorisations

Requiert une autorisation ALTER sur la table.

Utilisation de SQL Server Management Studio

Pour désactiver une contrainte de validation pour les instructions INSERT et UPDATE

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

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

  3. Dans la grille sous Concepteur de tables, cliquez sur Appliquer INSERTs et UPDATEs et sélectionnez Non dans le menu déroulant.

  4. Cliquez sur Fermer.

Utilisation de Transact-SQL

Pour désactiver une contrainte de validation pour 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 AdventureWorks2022;  
    GO  
    ALTER TABLE Purchasing.PurchaseOrderHeader  
    NOCHECK CONSTRAINT CK_PurchaseOrderHeader_Freight;   
    GO