指定项目中使用的列。使用 sp_articlecolumn 垂直筛选表中的数据。此存储过程在发布服务器的发布数据库上执行。
sp_articlecolumn [ @publication = ] 'publication'
, [ @article = ] 'article'
[ , [ @column = ] 'column' ]
[ , [ @operation = ] 'operation' ]
[ , [ @refresh_synctran_procs = ] refresh_synctran_procs ]
[ , [ @ignore_distributor = ] ignore_distributor ]
[ , [ @change_active = ] change_actve ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[@publication =] 'publication'
是包含该项目的发布名。publication 的数据类型为 sysname,没有默认设置。
[@article = ]'article'
是项目名。article 的数据类型为 sysname,没有默认设置。
[@column =] 'column'
是要添加或除去的列名。column 的数据类型为 sysname,默认设置为 NULL。如果是 NULL,则表示发布所有的列。
[@operation =] 'operation'
是复制状态。operation 的数据类型为 nvarchar(4),默认设置为 add。add 标记要复制的列。drop 去除该列的标记。
[@refresh_synctran_procs =] refresh_synctran_procs
指定是否添加或除去项目中的列。refresh_synctran_procs 的数据类型为 bit,默认设置为 1。如果是 1,则表示重新生成支持同步事务的存储过程以匹配复制的列数。
[@ignore_distributor =] ignore_distributor
表示是否在不连接到分发服务器的情况下执行此存储过程。ignore_distributor 的数据类型为 bit,默认设置为 0。如果是 0,则表示必须为发布启用数据库,而且应刷新项目高速缓存以反映项目所复制的新列。如果是 1,则表示允许为驻留在未发布数据库中的项目除去项目列;应该仅在恢复情况下使用该设置。
[@change_active = ] change_active
允许修改带有订阅的发布中的列。change_active 的数据类型为 int,默认设置为 0。如果是 0,则表示将不修改列。如果是 1,则表示可以从有订阅的活动项目中添加或除去列。
[@force_invalidate_snapshot = ] force_invalidate_snapshot
确认此存储过程采取的操作可能使现有快照无效。force_invalidate_snapshot 的数据类型为 bit,默认设置为 0。0 指定对项目的更改不会导致快照无效。如果存储过程检测到更改确实需要新快照,则会发生错误,且不会进行任何更改。而 1 指定对项目所做的更改可能导致快照无效,而且如果现有订阅需要新的快照,则提供适当的权限,使现有快照被标记为废弃并生成新快照。
[@force_reinit_subscription = ] force_reinit_subscription
确认此存储过程采取的操作可能要求重新初始化现有的订阅。force_reinit_subscription 的数据类型为 bit,默认设置为 0。0 指定对项目的更改不会导致重新初始化订阅。如果存储过程检测到更改需要重新初始化订阅,则会发生错误,且不会进行任何更改。而 1 指定对项目的更改将导致重新初始化现有的订阅,且提供使订阅重新初始化发生的权限。
0(成功)或 1(失败)
sp_articlecolumn 用于快照复制和事务复制。
sp_articlecolumn 在 sysarticles 内设置 bit。用 sp_articlecolumn 只能筛选一个未订阅项目。
只有 sysadmin 固定服务器角色成员或 db_owner 固定数据库角色成员才能执行 sp_articlecolumn。