Disabilitare un vincolo CHECK per la replicaDisable Check Constraints for Replication

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2016)sìDatabase SQL di AzuresìAzure SQL Data Warehouse sìParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

È possibile disabilitare i vincoli CHECK in SQL Server 2017SQL Server 2017 tramite SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.You can disable check constraints in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. I vincoli CHECK possono essere espressamente disabilitati per la replica e ciò può essere utile quando si pubblicano dati da una versione precedente di SQL ServerSQL Server.You can also explicitly disable check constraints for replication, which can be useful if you are publishing data from a previous version of SQL ServerSQL Server.

Nota

Se una tabella viene pubblicata usando la replica, i vincoli CHECK vengono disabilitati automaticamente per le operazioni eseguite dagli agenti di replica.If a table is published using replication, check constraints are automatically disabled for operations performed by replication agents. Quando un agente di replica esegue un accodamento, aggiornamento o una eliminazione a un sottoscrittore, il vincolo non viene controllato; se invece un utente esegue un accodamento, un aggiornamento o una eliminazione, il vincolo viene controllato.When a replication agent performs an insert, update, or delete at a Subscriber, the constraint is not checked; if a user performs an insert, update, or delete, the constraint is checked. Il vincolo viene disabilitato per l'agente di replica in quanto esso è già stato controllato nel server di pubblicazione quando i dati sono stati inseriti, aggiornati o eliminati.The constraint is disabled for the replication agent because the constraint was already checked at the Publisher when the data was originally inserted, updated, or deleted. Per altre informazioni, vedere Specificare le opzioni dello schema.For more information, see Specify Schema Options.

Prima di iniziareBefore You Begin

SicurezzaSecurity

AutorizzazioniPermissions

È necessario disporre dell'autorizzazione ALTER per la tabella.Requires ALTER permission on the table.

Utilizzo di SQL Server Management StudioUsing SQL Server Management Studio

Per disabilitare un vincolo CHECK per la replicaTo disable a check constraint for replication

  1. In Esplora oggettiespandere la tabella contenente il vincolo CHECK che si desidera modificare, quindi espandere la cartella Vincoli .In Object Explorer, expand the table with the check constraint you want to modify, and then expand the Constraints folder.

  2. Fare clic con il pulsante destro del mouse sul vincolo CHECK da modificare, quindi scegliere Modifica.Right-click the check constraint you wish to modify and then click Modify.

  3. Nella finestra di dialogo Verifica vincoli , in Progettazione tabelleselezionare un valore No per Attiva per replica.In the Check Constraints dialog box, under Table Designer, select a value of No for Enforce For Replication.

  4. Scegliere Chiudi.Click Close.

Utilizzo di Transact-SQLUsing Transact-SQL

Per disabilitare un vincolo CHECK per la replicaTo disable a check constraint for replication

  1. In Esplora oggetticonnettersi a un'istanza del Motore di databaseDatabase Engine.In Object Explorer, connect to an instance of Motore di databaseDatabase Engine.

  2. Sulla barra Standard fare clic su Nuova query.On the Standard bar, click New Query.

  3. Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.Copy and paste the following example into the query window and click Execute. Nell'esempio viene creata una tabella con una colonna IDENTITY e un vincolo CHECK sulla tabella.The example creates a table with an IDENTITY column and a CHECK constraint on the table. Nell'esempio il vincolo viene quindi eliminato e ricreato specificando la clausola NOT FOR REPLICATION.The example then drops the constraint and recreates it specifying the NOT FOR REPLICATION clause.

    USE AdventureWorks2012;  
    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);  
    

    Per altre informazioni, vedere ALTER TABLE (Transact-SQL).For more information, see ALTER TABLE (Transact-SQL).

Vedere ancheSee Also

Specificare le opzioni dello schemaSpecify Schema Options