指定项目类型(复制 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 FilterDefine and Modify a Column Filter

    • logbased manualboth - 基于日志的水平和垂直筛选项目,其中用于水平筛选的存储过程和定义垂直筛选项目的视图均由用户创建和定义,并将分别指定给 @filter@sync_object。 有关详细信息,请参阅 Define and Modify a Static Row FilterDefine and Modify a Column Filter

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

  2. 对于 logbased manualbothlogbased manualfilter 项目,请执行 sp_articlefilter 以生成用于水平筛选项目的筛选存储过程。 有关详细信息,请参阅 Define and Modify a Static Row Filter

  3. 对于 logbased manualbothlogbased manualviewlogbased manualfilter 项目,请执行 sp_articleview,以生成用于定义垂直筛选项目的视图。 有关详细信息,请参阅 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 manualview - 基于日志的筛选索引视图项目,其中定义垂直筛选项目的视图由用户创建和定义,并会指定给 @sync_object。 有关详细信息,请参阅 Define and Modify a Static Row FilterDefine and Modify a Column Filter

    • indexed view logbased manualboth - 基于日志的筛选索引视图项目,其中用于水平筛选的存储过程和定义垂直筛选项目的视图均由用户创建和定义,并会分别指定给 @filter@sync_object。 有关详细信息,请参阅 Define and Modify a Static Row FilterDefine and Modify a Column Filter

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

  2. 对于 logbased manualbothlogbased manualfilter 项目,请执行 sp_articlefilter 生成用于水平筛选项目的筛选存储过程。 有关详细信息,请参阅 Define and Modify a Static Row Filter

  3. 对于 logbased manualbothlogbased manualviewlogbased manualfilter 项目,请执行 sp_articleview 生成用于定义垂直筛选项目的视图。 有关详细信息,请参阅 Define and Modify a Column Filter

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

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

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

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

  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
发布数据和数据库对象