Отключение проверочных ограничений для репликации

Применимо к: SQL Server 2016 (13.x) и более поздних версий Azure SQL Database Управляемый экземпляр SQL AzureAzure Synapse Analytics AnalyticsPlatform System (PDW)

Вы можете отключить проверочные ограничения в SQL Server с помощью SQL Server Management Studio или Transact-SQL. Также можно явно отключить проверочные ограничения при репликации, что может оказаться полезным при публикации данных от более ранней версии SQL Server.

Примечание

Если таблица опубликована с использованием репликации, то проверочные ограничения для операций, выполняемых агентами репликации, автоматически отключаются. Когда агент репликации на подписчике выполняет вставку, обновление или удаление, ограничение не проверяется. Если эту же операцию выполняет пользователь, ограничение проверяется. Ограничение отключено для агента репликации по той причине, что оно уже проверено на издателе при выполнении исходной операции вставки, обновления или удаления данных. Дополнительные сведения см. в разделе Указание параметров схемы.

Перед началом

Безопасность

Разрешения

Требуется разрешение ALTER на таблицу.

Использование среды SQL Server Management Studio

Отключение проверочных ограничений при репликации

  1. Разверните в обозревателе объектовтаблицу с проверочным ограничением, которое нужно изменить, а затем разверните папку Ограничения .

  2. Щелкните правой кнопкой мыши проверочное ограничение, которое нужно изменить, и выберите пункт Изменить.

  3. В диалоговом окне Проверочные ограничения в разделе Конструктор таблицвыберите для параметра Включить использование для репликации значение Нет.

  4. Щелкните Закрыть.

Использование Transact-SQL

Отключение проверочных ограничений при репликации

  1. В обозревателе объектовподключитесь к экземпляру компонента Компонент Database Engine.

  2. На стандартной панели выберите пункт Создать запрос.

  3. Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить. В примере создается таблица со столбцом IDENTITY и ограничением CHECK. Затем в таблице удаляется это ограничение и снова создается с указанием предложения 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);  
    

Дополнительные сведения см. в разделе ALTER TABLE (Transact-SQL).

См. также:

Specify Schema Options (Указание параметров схемы)