指定项目类型(复制 Transact-SQL 编程)

复制的默认项目类型为表项目,但可以将其他数据库对象发布为项目,这些项目包括视图、存储过程、用户定义函数以及存储过程执行。 定义项目时,您可以使用复制存储过程以编程方式指定项目类型。 您要使用的具体过程取决于复制的类型和项目的类型。

注意注意

定义表、视图和存储过程项目时采用仅限架构的设计表示只复制对象定义。

在事务发布或快照发布中发布表项目

  1. 在发布服务器上,对发布数据库执行 sp_addarticle。 将 @type 指定为以下值之一以定义项目类型:

    • logbased - 基于日志的表项目,是事务复制和快照复制的默认值。 复制会自动生成用于水平筛选的存储过程和定义垂直筛选项目的视图。

    • logbased manualfilter - 基于日志的水平筛选项目,其中用于水平筛选的存储过程由用户手动创建和定义,并会指定给 @filter。 有关详细信息,请参阅定义和修改静态行筛选器

    • logbased manualview - 基于日志的垂直筛选项目,其中定义垂直筛选项目的视图由用户创建和定义,并会指定给 @sync_object。 有关详细信息,请参阅定义和修改静态行筛选器定义和修改列筛选器

    • logbased manualboth - 基于日志的水平和垂直筛选项目,其中用于水平筛选的存储过程和定义垂直筛选项目的视图均由用户创建和定义,并将分别指定给 @filter@sync_object。 有关详细信息,请参阅定义和修改静态行筛选器定义和修改列筛选器

    这样便为发布定义了一个新项目。 有关详细信息,请参阅定义项目

  2. 对于 logbased manualbothlogbased manualfilter 项目,请执行 sp_articlefilter 生成用于水平筛选项目的筛选存储过程。 有关详细信息,请参阅定义和修改静态行筛选器

  3. 对于 logbased manualbothlogbased manualviewlogbased manualfilter 项目,请执行 sp_articleview 生成用于定义垂直筛选项目的视图。 有关详细信息,请参阅定义和修改列筛选器

在事务发布或快照发布中发布视图项目或索引视图项目

  1. 在发布服务器上,对发布数据库执行 sp_addarticle。 将 @type 指定为以下值之一以定义项目类型:

    • indexed view logbased - 基于日志的索引视图项目 复制会自动生成用于水平筛选的存储过程和定义垂直筛选项目的视图。

    • view schema only - 仅限架构的视图项目。 还必须复制基表。

    • indexed view schema only - 仅限架构的索引视图项目。 还必须复制基表。

    • indexed view logbased manualfilter - 基于日志的水平筛选索引视图项目,其中用于水平筛选的存储过程由用户手动创建和定义,并会指定给 @filter。 有关详细信息,请参阅定义和修改静态行筛选器

    • indexed view logbased manualview - 基于日志的筛选索引视图项目,其中定义垂直筛选项目的视图由用户创建和定义,并会指定给 @sync_object。 有关详细信息,请参阅定义和修改静态行筛选器定义和修改列筛选器

    • indexed view logbased manualboth - 基于日志的筛选索引视图项目,其中用于水平筛选的存储过程和定义垂直筛选项目的视图均由用户创建和定义,并会分别指定给 @filter@sync_object。 有关详细信息,请参阅定义和修改静态行筛选器定义和修改列筛选器

    这样便为发布定义了一个新项目。 有关详细信息,请参阅定义项目

  2. 对于 logbased manualbothlogbased manualfilter 项目,请执行 sp_articlefilter 生成用于水平筛选项目的筛选存储过程。 有关详细信息,请参阅定义和修改静态行筛选器

  3. 对于 logbased manualbothlogbased manualviewlogbased manualfilter 项目,请执行 sp_articleview 生成用于定义垂直筛选项目的视图。 有关详细信息,请参阅定义和修改列筛选器

在事务发布或快照发布中发布存储过程、存储过程执行或用户定义函数项目

  • 在发布服务器上,对发布数据库执行 sp_addarticle。 将 @type 指定为以下值之一以定义项目类型:

    • proc schema only - 仅限架构的存储过程项目。

    • proc exec - 将存储过程的执行复制到项目的所有订阅服务器。 有关详细信息,请参阅在事务复制中发布存储过程执行

    • serializable proc exec - 仅当存储过程是在可序列化事务的上下文中执行时才复制存储过程的执行。 有关详细信息,请参阅在事务复制中发布存储过程执行

    • func schema only - 仅限架构的用户定义函数项目。

    这样便为发布定义了一个新项目。 有关详细信息,请参阅定义项目

在合并发布中发布表或视图项目

  • 在发布服务器上,对发布数据库执行 sp_addmergearticle。 将 @type 指定为以下值之一以定义项目类型:

    • table - 表项目。

    • indexed view schema only - 仅限架构的索引视图项目。

    • view schema only - 仅限架构的视图项目。

    这样便为发布定义了一个新项目。 有关详细信息,请参阅定义项目

在合并发布中发布存储过程或用户定义函数项目

  • 在发布服务器上,对发布数据库执行 sp_addmergearticle。 将 @type 指定为以下值之一以定义项目类型:

    • func schema only - 仅限架构的用户定义函数项目。

    • proc schema only - 仅限架构的存储过程项目。

    这样便为发布定义了一个新项目。 有关详细信息,请参阅定义项目

请参阅

概念

复制系统存储过程概念

发布数据和数据库对象