Désactiver des contraintes de validation avec des instructions INSERT et UPDATE
S’applique à : SQL Server 2016 (13.x) et versions ultérieures Base de données Azure SQL Azure SQL Managed Instance Azure Synapse Analytics Analytics 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.
Remarque
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
Dans l' Explorateur d'objets, développez la table avec la contrainte, puis développez le dossier Contraintes .
Cliquez avec le bouton droit sur la contrainte et sélectionnez Modifier.
Dans la grille sous Concepteur de tables, cliquez sur Appliquer INSERTs et UPDATEs et sélectionnez Non dans le menu déroulant.
Cliquez sur Fermer.
Utilisation de Transact-SQL
Pour désactiver une contrainte de validation pour les instructions INSERT et UPDATE
Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.
Dans la barre d'outils standard, cliquez sur Nouvelle requête.
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