如何指定架构选项(复制 Transact-SQL 编程)

发布表或视图时,使用复制可以控制为已发布的对象复制的对象创建选项。创建项目时,可使用复制存储过程以编程的方式设置架构选项。也可以稍后对这些选项进行更改。如果没有为某项目显式指定这些选项,将定义默认的选项集。

注意注意

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

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

注意注意

必须先将架构选项值从 binary 转换为 int,才能执行位运算。有关详细信息,请参阅Article Options for Transactional Replication

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

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

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

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

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

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

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

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

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

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

  5. 运行快照代理以生成新快照。有关详细信息,请参阅如何创建初始快照(复制 Transact-SQL 编程)

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

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

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

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

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

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

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

  5. 运行快照代理以生成新快照。有关详细信息,请参阅如何创建初始快照(复制 Transact-SQL 编程)