从已发布的现有表项目中除去列。此存储过程在发布服务器的发布数据库上执行。
sp_repldropcolumn [ @source_object = ] 'source_object'
, [ @column = ] 'column'
[ , [ @schema_change_script = ] 'schema_change_script' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[@source_object =] 'source_object'
是包含要除去的列的表项目名。source_object 的数据类型为 nvarchar(258),无默认值。
[@column =] 'column'
是表中要除去的列名。column 的数据类型为 sysname,无默认值。
[@schema_change_script =] 'schema_change_script'
是 SQL 脚本的路径。schema_change_script 的数据类型为 nvarchar(4000),默认值为 NULL。
[@force_invalidate_snapshot = ] force_invalidate_snapshot
启用或禁用使快照无效的能力。force_invalidate_snapshot 的数据类型为 bit,默认值为 1。1 指定项目的更改可能导致快照无效,如果真是这样,则值 1 提供产生新快照的权限。0 指定项目的更改不会导致快照无效。
[@force_reinit_subscription = ] force_reinit_subscription
启用或禁用使订阅重新初始化的能力。force_reinit_subscription 的数据类型为 bit,默认值为 0。0 指定项目的更改不会导致订阅重新初始化。1 指定项目的更改可能导致订阅重新初始化,如果真是这样,则值 1 提供重新初始化订阅的权限。
0(成功)或 1(失败)
sp_repldropcolumn 用于所有类型的复制。
当使用 sp_repldropcolumn 时,如果对某个项目的架构做了更改,而该项目所属的发布使用 DTS 包,则架构更改不会传播到订阅服务器,并且在订阅服务器上不会重新生成 INSERT/UPDATE/DELETE 的自定义过程。用户需要手工重新生成 DTS 包,并在订阅服务器上生成相应的架构更改。如果不应用架构更新,则分发代理程序应用随后的修改将失败。生成架构更改之前,确保没有要传送的挂起事务。有关更多信息,请参见如何转换已发布数据。
重要 应在执行 sp_repldropcolumn后执行发布数据库的备份。如果没有这样做,会在发布数据库还原后导致合并失败。