sp_repldropcolumn (Transact-SQL)
从已发布的现有表项目中删除列。此存储过程在发布服务器的发布数据库中执行。
重要提示: |
---|
已不推荐使用此存储过程,支持它主要是为了能够向后兼容。它只能与 Microsoft SQL Server 2000 发布服务器和 SQL Server 2000 重新发布的订阅服务器一起使用。 |
语法
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 Server 脚本的名称和路径。schema_change_script 的数据类型为 nvarchar(4000),默认值为 NULL。复制允许用户定义的自定义存储过程替换事务性复制中使用的一个或多个默认过程。在使用 sp_repldropcolumn 更改所复制表项目的架构后,将执行 schema_change_script,它还可用于执行下列任一操作:- 如果自定义存储过程是自动重新生成的,则可以使用 schema_change_script 来删除这些自定义存储过程,将其替换为支持新架构的用户定义的自定义存储过程。
- 如果自定义存储过程不是自动重新生成的,则可以使用 schema_change_script来重新生成这些存储过程,或者创建用户定义的自定义存储过程。
[ @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。从复制的表项目中删除列时,应通过对已发布表执行数据定义语言 (DDL) 命令来进行。只要启用了 DDL 复制,复制就会自动复制这些 DDL 命令。有关详细信息,请参阅对发布数据库进行架构更改。
在传播来自重新发布的订阅服务器(该订阅服务器在 Microsoft SQL Server 2000 的早期版本中运行)的更改时,仍然需要使用 sp_repladdcolumn。
sp_repldropcolumn 用于所有类型的复制。
当使用 sp_repldropcolumn 时,如果对某个项目的架构做了更改,而该项目所属的发布使用 Data Transformation Services (DTS) 包,则架构更改不会传播到订阅服务器,并且在订阅服务器上不会重新生成 INSERT/UPDATE/DELETE 的自定义过程。用户需要手动重新生成 DTS 包,并在订阅服务器上对架构进行相应的更改。如果不应用架构更新,则分发代理应用随后的修改将失败。对架构进行更改之前,确保没有要传送的挂起事务。
重要提示: |
---|
应在执行 sp_repldropcolumn 后执行发布数据库的备份。如果没有这样做,会导致发布数据库还原后合并失败。 |
权限
只有发布服务器上的 sysadmin 固定服务器角色的成员、发布数据库中的 db_owner 和 db_ddladmin 固定数据库角色的成员可以执行 sp_autostats。