指定架构选项

本主题说明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2012 中指定架构选项。 在发布表或视图时,可以控制为发布的对象复制的对象创建选项。 创建项目时可以设置这些选项,还可以在以后更改它们。 如果没有为某项目显式指定这些选项,将定义默认的选项集。

注意注意

使用复制存储过程时的默认架构选项可能与使用 SQL Server Management Studio 添加项目时的默认选项不同。

本主题内容

  • 开始之前:

    限制和局限

    建议

  • 指定架构选项,使用:

    SQL Server Management Studio

    Transact-SQL

开始之前

限制和局限

  • 如果在创建发布后更改架构选项,则必须生成新的快照。

建议

用于“返回首页”链接的箭头图标[返回页首]

使用 SQL Server Management Studio

可以在**“项目属性 - <项目>”对话框的“属性”选项卡上指定架构选项,如是否将约束和触发器复制到订阅服务器。 此选项卡可以通过新建发布向导和“发布属性 - <发布>”**对话框访问。 有关使用该向导和访问该对话框的详细信息,请参阅创建发布查看和修改发布属性

指定架构选项

  1. 在新建发布向导的**“项目”页或“发布属性 - <发布>”对话框中,选择一个项目,然后单击“项目属性”**。

  2. 选择要将架构选项更改应用于哪些项目:

    • 单击**“设置突出显示的 <对象类型> 项目的属性”,启动“项目属性 - <对象名称>”对话框;在此对话框中对属性所做的更改将仅应用于“项目”**页上的对象窗格中突出显示的对象。

    • 单击**“设置所有 <对象类型> 项目的属性”以启动“所有 <对象类型> 项目的属性”对话框;在此对话框中所做的属性更改将应用于“项目”**页的对象窗格中该类型的所有对象,包括尚未选择发布的对象。

      注意注意

      “所有 <对象类型> 项目的属性”对话框中对属性所做的更改将覆盖以前在“项目属性 - <对象名称>”对话框中所做的任何更改。 例如,若要为某对象类型的所有项目设置一些默认值,但还希望为单个对象设置一些属性,请首先设置所有项目的默认值。 然后再设置单个对象的属性。

  3. 在**“项目属性 - <项目>”对话框的“属性”选项卡中的“将对象和设置复制到订阅服务器”“目标对象”**部分中,指定选项的值。

  4. 根据需要修改任意属性,然后单击**“确定”**。

  5. 如果在**“发布属性 - <发布>”对话框中,请单击“确定”**保存并关闭对话框。

用于“返回首页”链接的箭头图标[返回页首]

使用 Transact-SQL

架构选项指定为十六进制值,该值为一个或多个选项的 |(位或)结果。 有关详细信息,请参阅 sp_addarticlesp_addmergearticle

注意注意

必须先将架构选项值从 binary 转换为 int,才能执行位运算。 有关详细信息,请参阅 CAST 和 CONVERT (Transact-SQL)

为快照或事务发布定义项目时指定架构选项

  • 在发布服务器上,对发布数据库执行 sp_addarticle。 为 @publication 指定项目所属的发布的名称,为 @article 指定项目的名称,为 @source_object 指定要发布的数据库对象,为 @type 指定数据库对象的类型,并为 @schema_option 指定一个或多个架构选项的 |(位或)结果。 有关详细信息,请参阅定义项目

为合并发布定义项目时指定架构选项

  • 在发布服务器上,对发布数据库执行 sp_addmergearticle。 为 @publication 指定项目所属的发布的名称,为 @article 指定项目的名称,为 @source_object 指定要发布的数据库对象,并为 @schema_option 指定一个或多个架构选项的 |(位或)结果。 有关详细信息,请参阅定义项目

更改快照发布或事务发布中的现有项目的架构选项

  1. 在发布服务器上,对发布数据库执行 sp_helparticle。 为 @publication 指定项目所属的发布的名称,并为 @article 指定项目的名称。 记下结果集中 schema_option 列的值。

  2. 使用步骤 1 中的值和所需的架构选项值执行 &(位与)运算,以确定是否已设置此选项。

    • 如果结果为 0,则表示未设置此选项。

    • 如果结果为选项值,则表示已设置此选项。

  3. 如果未设置此选项,则使用步骤 1 中的值和所需的架构选项值执行 |(位或)运算。

  4. 在发布服务器上,对发布数据库执行 sp_changearticle。 为 @publication 指定项目所属的发布的名称,为 @article 指定项目的名称,为 @property 指定 schema_option 值,并为 @value 指定步骤 3 中的十六进制结果。

  5. 运行快照代理以生成新快照。 有关详细信息,请参阅创建并应用初始快照

为合并发布中的现有项目更改架构选项

  1. 在发布服务器上,对发布数据库执行 sp_helpmergearticle。 为 @publication 指定项目所属的发布的名称,并为 @article 指定项目的名称。 记下结果集中 schema_option 列的值。

  2. 使用步骤 1 中的值和所需的架构选项值执行 &(位与)运算,以确定是否已设置此选项。

    • 如果结果为 0,则表示未设置此选项。

    • 如果结果为选项值,则表示已设置此选项。

  3. 如果未设置此选项,则使用步骤 1 中的值和所需的架构选项值执行 |(位或)运算。

  4. 在发布服务器上,对发布数据库执行 sp_changemergearticle。 为 @publication 指定项目所属的发布的名称,为 @article 指定项目的名称,为 @property 指定 schema_option 值,并为 @value 指定步骤 3 中的十六进制结果。

  5. 运行快照代理以生成新快照。 有关详细信息,请参阅创建并应用初始快照

用于“返回首页”链接的箭头图标[返回页首]

请参阅

概念

发布数据和数据库对象

事务复制的项目选项