Определение типов статей (программирование репликации на языке Transact-SQL)

Применимо к:SQL Server

При репликации по умолчанию статьи имеют тип статей таблиц, но может производиться публикация и других типов объектов базы данных — представлений, хранимых процедур, определяемых пользователем функций и результатов выполнения хранимых процедур. Задать тип статьи программным путем при ее создании можно при помощи хранимых процедур репликации. Какие именно хранимые процедуры для этого применяются, зависит от типа репликации и типа статьи.

Примечание.

Если при определении статьи таблицы, представления или хранимой процедуры указана только схема, то производится репликация только определения объекта.

Публикация статьи таблицы в публикации моментальных снимков или транзакций

  1. Выполните процедуру sp_addarticleна издателе в базе данных публикации. Чтобы определить тип статьи, укажите одно из следующих значений параметра @type:

    • logbased — журнальная статья таблицы (значение по умолчанию для репликации транзакций и моментальных снимков). Репликация автоматически создает хранимую процедуру, применяемую для горизонтальной фильтрации, и представление, определяющее статью с вертикальной фильтрацией.

    • logbased manualfilter — журнальная статья с горизонтальной фильтрацией, где хранимая процедура для горизонтальной фильтрации создается вручную и определяется пользователем в параметре @filter. Дополнительные сведения см. в разделе Define and Modify a Static Row Filter.

    • logbased manualview — журнальная статья с вертикальной фильтрацией, где определяющее ее представление создается вручную пользователем и определяется в параметре @sync_object. Дополнительные сведения см. в разделах Define and Modify a Static Row Filter и Define and Modify a Column Filter.

    • logbased manualboth — журнальная статья с горизонтальной и вертикальной фильтрацией, где хранимая процедура для горизонтальной фильтрации и представление, определяющее вертикальную фильтрацию, создаются пользователем вручную и указываются в параметрах @filter и @sync_object. Дополнительные сведения см. в разделах Define and Modify a Static Row Filter и Define and Modify a Column Filter.

    Таким образом определяется новая статья для публикации. Дополнительные сведения см. в статье определить статью.

  2. Выполните процедуру sp_articlefilter для статей logbased manualboth и logbased manualfilter, чтобы создать хранимую процедуру фильтрации для статьи с горизонтальной фильтрацией. Дополнительные сведения см. в разделе Define and Modify a Static Row Filter.

  3. Выполните процедуру sp_articleview для статей logbased manualboth, logbased manualview и logbased manualfilter, чтобы создать представление, определяющее статью с вертикальной фильтрацией. Дополнительные сведения см. в разделе Define and Modify a Column Filter.

Публикация статьи представления или индексированного представления в публикации моментальных снимков или транзакций

  1. Выполните процедуру sp_addarticleна издателе в базе данных публикации. Чтобы определить тип статьи, укажите одно из следующих значений параметра @type:

    • indexed view logbased — журнальная статья индексированного представления. Репликация автоматически создает хранимую процедуру, применяемую для горизонтальной фильтрации, и представление, определяющее статью с вертикальной фильтрацией.

    • view schema only — статья со схемой, соответствующая представлению. Также необходимо выполнить репликацию базовой таблицы.

    • indexed view schema only — статья со схемой, соответствующая индексированному представлению. Также необходимо выполнить репликацию базовой таблицы.

    • indexed view logbased manualfilter — журнальная статья индексированного представления с горизонтальной фильтрацией, где хранимая процедура создается вручную и определяется пользователем в параметре @filter. Дополнительные сведения см. в разделе Define and Modify a Static Row Filter.

    • indexed view logbased manualfilter — журнальная статья индексированного представления с фильтрацией, где представление, определяющее вертикальную фильтрацию, создается и определяется пользователем вручную и указывается в параметре @sync_object. Дополнительные сведения см. в разделах Define and Modify a Static Row Filter и Define and Modify a Column Filter.

    • indexed view logbased manualboth — журнальная статья индексированного представления с вертикальной и горизонтальной фильтрацией, где хранимая процедура для горизонтальной фильтрации и представление для вертикальной фильтрации создаются и определяются пользователем, а затем указываются в параметрах @filter и @sync_object. Дополнительные сведения см. в разделах Define and Modify a Static Row Filter и Define and Modify a Column Filter.

    Таким образом определяется новая статья для публикации. Дополнительные сведения см. в статье определить статью.

  2. Выполните процедуру sp_articlefilter для статей logbased manualboth и logbased manualfilter , чтобы создать хранимую процедуру фильтрации для статьи с горизонтальной фильтрацией. Дополнительные сведения см. в разделе Define and Modify a Static Row Filter.

  3. Выполните процедуру sp_articleviewдля статей logbased manualboth, logbased manualview и logbased manualfilter , чтобы создать представление, определяющее статью с вертикальной фильтрацией. Дополнительные сведения см. в разделе Define and Modify a Column Filter.

Публикация статьи хранимой процедуры, выполнение хранимой процедуры или определяемой пользователем функции в публикации моментальных снимков или транзакций

  1. Выполните процедуру sp_addarticleна издателе в базе данных публикации. Чтобы определить тип статьи, укажите одно из следующих значений параметра @type:

    • proc schema only — статья со схемой, соответствующая хранимой процедуре.

    • proc exec — производит репликацию выполнения хранимой процедуры на всех подписчиках статьи. Дополнительные сведения см. в статье Publishing Stored Procedure Execution in Transactional Replication.

    • serializable proc exec — производит репликацию выполнения хранимой процедуры только в том случае, если она выполняется в контексте сериализуемой транзакции. Дополнительные сведения см. в статье Publishing Stored Procedure Execution in Transactional Replication.

    • func schema only — статья со схемой, соответствующая определяемой пользователем функции.

    Таким образом определяется новая статья для публикации. Дополнительные сведения см. в статье определить статью.

Публикация статьи таблицы или представления в публикации слиянием

  1. В базе данных публикации на издателе выполните процедуру sp_addmergearticle. Чтобы определить тип статьи, укажите одно из следующих значений параметра @type:

    • table — статья таблицы.

    • indexed view schema only — статья со схемой, соответствующая индексированному представлению.

    • view schema only — статья со схемой, соответствующая представлению.

    Таким образом определяется новая статья для публикации. Дополнительные сведения см. в статье определить статью.

Публикация статьи хранимой процедуры или определяемой пользователем функции в публикации слиянием

  1. В базе данных публикации на издателе выполните процедуру sp_addmergearticle. Чтобы определить тип статьи, укажите одно из следующих значений параметра @type:

    • func schema only — статья со схемой, соответствующая определяемой пользователем функции.

    • proc schema only — статья со схемой, соответствующая хранимой процедуре.

    Таким образом определяется новая статья для публикации. Дополнительные сведения см. в статье определить статью.

См. также

Replication System Stored Procedures Concepts
Публикация данных и объектов базы данных