Поделиться через


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

Область применения: SQL Server 2016 (13.x) и более поздних версий База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics Analytics Platform System (PDW)

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

Примечание.

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

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

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

Разрешения

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

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

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

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

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

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

  4. Нажмите кнопку Закрыть.

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

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

  1. В обозревателе объектов подключитесь к экземпляру ядра СУБД.

  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 (Указание параметров схемы)