如何指定架构选项(复制 Transact-SQL 编程)
发布表或视图时,使用复制可以控制为已发布的对象复制的对象创建选项。 创建项目时,可使用复制存储过程以编程的方式设置架构选项。 也可以稍后对这些选项进行更改。 如果没有为某项目显式指定这些选项,将定义默认的选项集。
注意 |
---|
使用复制存储过程时的默认架构选项可能与使用 MicrosoftSQL Server Management Studio 添加项目时的默认选项不同。 |
架构选项指定为十六进制值,该值为一个或多个选项的 |(位或)结果。 有关详细信息,请参阅 sp_addarticle 和 sp_addmergearticle。
注意 |
---|
必须先将架构选项值从 binary 转换为 int,才能执行位运算。 有关详细信息,请参阅CONVERT (Transact-SQL)。 |
为快照或事务发布定义项目时指定架构选项
- 在发布服务器上,对发布数据库执行 sp_addarticle。 为 @publication 指定项目所属的发布的名称,为 @article 指定项目的名称,为 @source_object 指定要发布的数据库对象,为 @type 指定数据库对象的类型,并为 @schema_option 指定一个或多个架构选项的 |(位或)结果。 有关详细信息,请参阅如何定义项目(复制 Transact-SQL 编程)。
为合并发布定义项目时指定架构选项
- 在发布服务器上,对发布数据库执行 sp_addmergearticle。 为 @publication 指定项目所属的发布的名称,为 @article 指定项目的名称,为 @source_object 指定要发布的数据库对象,并为 @schema_option 指定一个或多个架构选项的 |(位或)结果。 有关详细信息,请参阅如何定义项目(复制 Transact-SQL 编程)。
更改快照发布或事务发布中的现有项目的架构选项
在发布服务器上,对发布数据库执行 sp_helparticle。 为 @publication 指定项目所属的发布的名称,并为 @article 指定项目的名称。 记下结果集中 schema_option 列的值。
使用步骤 1 中的值和所需的架构选项值执行 &(位与)运算,以确定是否已设置此选项。
如果结果为 0,则表示未设置此选项。
如果结果为选项值,则表示已设置此选项。
如果未设置此选项,则使用步骤 1 中的值和所需的架构选项值执行 |(位或)运算。
在发布服务器上,对发布数据库执行 sp_changearticle。 为 @publication 指定项目所属的发布的名称,为 @article 指定项目的名称,为 @property 指定 schema_option 值,并为 @value 指定步骤 3 中的十六进制结果。
运行快照代理以生成新快照。 有关详细信息,请参阅如何创建初始快照(复制 Transact-SQL 编程)。
更改快照发布或事务发布中的现有项目的架构选项
在发布服务器上,对发布数据库执行 sp_helpmergearticle。 为 @publication 指定项目所属的发布的名称,并为 @article 指定项目的名称。 记下结果集中 schema_option 列的值。
使用步骤 1 中的值和所需的架构选项值执行 &(位与)运算,以确定是否已设置此选项。
如果结果为 0,则表示未设置此选项。
如果结果为选项值,则表示已设置此选项。
如果未设置此选项,则使用步骤 1 中的值和所需的架构选项值执行 |(位或)运算。
在发布服务器上,对发布数据库执行 sp_changemergearticle。 为 @publication 指定项目所属的发布的名称,为 @article 指定项目的名称,为 @property 指定 schema_option 值,并为 @value 指定步骤 3 中的十六进制结果。
运行快照代理以生成新快照。 有关详细信息,请参阅如何创建初始快照(复制 Transact-SQL 编程)。