为 SQL Server 复制指定架构选项

适用于:SQL ServerAzure SQL 托管实例

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

注意

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

本主题内容

开始之前

限制和局限

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

建议

使用 SQL Server Management Studio

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

指定架构选项

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

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

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

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

      注意

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

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

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

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

“使用 Transact-SQL”

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

注意

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

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

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

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

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

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

  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. 运行快照代理以生成新快照。 有关详细信息,请参阅 创建并应用初始快照

另请参阅

发布数据和数据库对象
Article Options for Transactional Replication