Désactiver des contraintes de validation lors de la réplication

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 des contraintes de validation dans SQL Server à l’aide de SQL Server Management Studio ou de Transact-SQL. Vous pouvez également choisir expressément de désactiver les contraintes de validation pour la réplication, ce qui est parfois très utile si vous publiez des données issues d'une version précédente de SQL Server.

Notes

Si une table est publiée à l'aide du processus de réplication, les contraintes de validation sont automatiquement désactivées lors des opérations effectuées par les agents de réplication. Lorsqu'un Agent de réplication effectue une requête Insert, Update ou Delete vers un abonné, la contrainte n'est pas vérifiée ; si c'est un utilisateur qui effectue la requête Insert, Update ou Delete, la contrainte est vérifiée. La contrainte est désactivée pour l'Agent de réplication, car elle était déjà vérifiée au niveau de l'éditeur lorsque les données ont été insérées, mises à jour ou supprimées à l'origine. Pour plus d’informations, consultez Spécifier des options de schéma.

Avant de commencer

Sécurité

Autorisations

Requiert une autorisation ALTER sur la table.

Utilisation de SQL Server Management Studio

Pour désactiver une contrainte de validation lors de la réplication

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

  2. Cliquez avec le bouton droit sur la contrainte de validation à modifier, puis cliquez sur Modifier.

  3. Dans la boîte de dialogue Contraintes de validation , sous Concepteur de tables, sélectionnez la valeur Non pour Appliquer la réplication.

  4. Cliquez sur Fermer.

Utilisation de Transact-SQL

Pour désactiver une contrainte de validation lors de la réplication

  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 l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter. L'exemple crée une table avec une colonne IDENTITY et une contrainte CHECK sur la table. Il supprime ensuite la contrainte et la recrée en spécifiant la clause NOT FOR REPLICATION.

    USE AdventureWorks2022;  
    GO  
    CREATE TABLE dbo.doc_exd (column_a int IDENTITY (1,1)   
    CONSTRAINT exd_check CHECK (column_a > 1))   
    
    ALTER TABLE dbo.doc_exd   
    DROP CONSTRAINT exd_check;   
    GO  
    ALTER TABLE dbo.doc_exd    
    ADD CONSTRAINT exd_check CHECK NOT FOR REPLICATION (column_a > 1);  
    

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

Voir aussi

Spécifier des options de schéma