适用于: SQL Server 
Azure SQL 托管实例
本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中指定架构选项。 在发布表或视图时,可以控制为发布的对象复制的对象创建选项。 创建项目时可以设置这些选项,还可以在以后更改它们。 如果没有为某项目显式指定这些选项,将定义默认的选项集。
注意
使用复制存储过程时的默认架构选项可能与使用 SQL Server Management Studio 添加项目时的默认选项不同。
本主题内容
- 开始之前: 
- 指定架构选项,使用: 
开始之前
限制和局限
- 如果在创建发布后更改架构选项,则必须生成新的快照。
建议
- 有关架构选项的完整列表,请参阅 sp_addarticle (Transact-SQL) 和 sp_addmergearticle (Transact-SQL) 的 @schema_option参数。
使用 SQL Server Management Studio
在“项目属性 - <项目>”对话框的“属性”选项卡上指定架构选项,例如是否将约束和触发器复制到订阅服务器。 此选项卡可在新建发布向导和“发布属性 - <发布>”对话框中获得。 有关如何使用该向导和如何访问该对话框的详细信息,请参阅创建发布和查看和修改发布属性。
指定架构选项
- 在新建发布向导或“发布属性 - <发布>”对话框的“项目”页上,选择一个项目,然后单击“项目属性”。 
- 选择要将架构选项更改应用于哪些项目: - 单击“设置突出显示的 <对象类型> 项目的属性”以启动“项目属性 - <对象名>”对话框;在此对话框中进行的属性更改仅应用于在“项目”页上的对象窗格中突出显示的对象。 
- 单击“设置所有 <对象类型> 项目的属性”以启动“所有 <对象类型> 项目的属性”对话框;在此对话框中进行的属性更改应用于“项目”页上的对象窗格中该类型的所有对象,包括尚未选择进行发布的对象。 - 注意 - 在“所有 <对象类型> 项目的属性”对话框中进行的属性更改会替代以前在“项目属性 - <对象名>”对话框中进行的任何更改。 例如,若要为某对象类型的所有项目设置一些默认值,但还希望为单个对象设置一些属性,请首先设置所有项目的默认值。 然后再设置单个对象的属性。 
 
- 在“项目属性 - <项目>”对话框的“属性”选项卡的“将对象和设置复制到订阅服务器”和“目标对象”部分中,为各选项指定值。 
- 根据需要修改属性,然后单击 “确定”。 
- 如果处于“发布属性 - <发布>”对话框中,请单击“确定”以保存并关闭该对话框。 
“使用 Transact-SQL”
架构选项指定为十六进制值,该值为一个或多个选项的 |(位或) 结果。 有关详细信息,请参阅 sp_addarticle 和 sp_addmergearticle。
注意
必须先将架构选项值从 binary 转换为 int ,才能执行位运算。 有关详细信息,请参阅 CAST 和 CONVERT (Transact-SQL)。
为快照或事务发布定义项目时指定架构选项
- 在发布服务器上,对发布数据库执行 sp_addarticle。 为 @publication指定项目所属的发布的名称,为@article指定项目的名称,为@source_object指定要发布的数据对象,为@type指定数据对象的类型,为@schema_option指定一个或多个架构选项的 |(按位 OR)结果。 有关详细信息,请参阅 定义项目。
为合并发布定义项目时指定架构选项
- 在发布服务器上,对发布数据库执行 sp_addmergearticle。 为 @publication指定项目所属的发布的名称,为@article指定项目的名称,为@source_object指定要发布的数据对象,并为@schema_option指定一个或多个架构选项的 |(按位 OR)结果。 有关详细信息,请参阅 定义项目。
更改快照发布或事务发布中的现有项目的架构选项
- 在发布服务器上,对发布数据库执行 sp_helparticle。 为 - @publication指定项目所属的发布的名称,并为- @article指定项目的名称。 记下结果集中- schema_option列的值。
- 使用步骤 1 中的值和所需的架构选项值执行 &(按位与)运算,以确定是否设置了此选项。 - 如果结果为 0,则表示未设置此选项。 
- 如果结果为选项值,则表示已设置此选项。 
 
- 如果未设置此选项,则使用步骤 1 中的值和所需的架构选项值执行 |(位或) 运算。 
- 在发布服务器上,对发布数据库执行 sp_changearticle。 为 - @publication指定项目所属的发布的名称,为- @article指定项目的名称,为- @property指定- schema_option值,并为- @value指定步骤 3 中的十六进制结果。
- 运行快照代理以生成新快照。 有关详细信息,请参阅 创建并应用初始快照。 
为合并发布中的现有项目更改架构选项
- 在发布服务器上,对发布数据库执行 sp_helpmergearticle。 为 - @publication指定项目所属的发布的名称,并为- @article指定项目的名称。 记下结果集中 schema_option 列的值。
- 使用步骤 1 中的值和所需的架构选项值执行 &(按位与)运算,以确定是否设置了此选项。 - 如果结果为 0,则表示未设置此选项。 
- 如果结果为选项值,则表示已设置此选项。 
 
- 如果未设置此选项,则使用步骤 1 中的值和所需的架构选项值执行 |(位或) 运算。 
- 在发布服务器上,对发布数据库执行 sp_changemergearticle。 为 - @publication指定项目所属的发布的名称,为- @article指定项目的名称,为- @property指定- schema_option值,并为- @value指定步骤 3 中的十六进制结果。
- 运行快照代理以生成新快照。 有关详细信息,请参阅 创建并应用初始快照。