sp_repladdcolumn (Transact-SQL)

适用于:SQL ServerAzure SQL 托管实例

将列添加到已发布的现有表项目中。 允许将新列添加到发布该表的所有发布服务器,或者只将新列添加到发布该表的特定发布中。 此存储过程在发布服务器上对发布数据库执行。

重要

已不推荐使用此存储过程,支持它是为了能够向后兼容。 它只能与 Microsoft SQL Server 2000 (8.x) 发布服务器和 SQL Server 2000 (8.x) 重新发布订阅服务器一起使用。 此过程不应用于 SQL Server 2005 (9.x) 或更高版本中引入的数据类型的列。

Transact-SQL 语法约定

语法

  
sp_repladdcolumn [ @source_object = ] 'source_object', [ @column = ] 'column' ]  
    [ , [ @typetext = ] 'typetext' ]  
    [ , [ @publication_to_add = ] 'publication_to_add' ]  
    [ , [ @from_agent = ] from_agent ]  
    [ , [ @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(358),没有默认值。

[ @column =] 'column'
表中要为复制添加的列的名称。 sysname,无默认值。

[ @typetext =] 'typetext'
要添加的列的定义。 typetextnvarchar(3000),没有默认值。 例如,如果要添加列order_filled,并且它是单个字符字段(非 NULL),并且默认值为 N,则order_filled为 参数,而 column,char (1) NOT NULL CONSTRAINT constraint_name DEFAULT 'N' 的定义将是 typetext 参数值。

[ @publication_to_add =] 'publication_to_add'
要向其中添加新列的发布的名称。 publication_to_addnvarchar(4000),默认值为 ALL。 如果 ALL,则包含此表的所有发布都会受到影响。 如果 指定了publication_to_add ,则只有此发布添加了新列。

[ @from_agent = ] from_agent
表示是否由复制代理执行该存储过程。 from_agent为 int,默认值为 0,其中此存储过程由 副本 (replica)tion 代理执行时使用值 1,在所有其他情况下应使用默认值 0

[ @schema_change_script =] 'schema_change_script'
指定用于修改系统生成的自定义存储过程的 SQL Server 脚本的名称和路径。 schema_change_script为 nvarchar(4000),默认值为 NULL。 复制允许用户定义的自定义存储过程替换事务复制中使用的一个或多个默认过程。 使用sp_repladdcolumn对副本 (replica)表项目进行架构更改后执行schema_change_script,可用于执行以下操作之一:

  • 如果自动重新生成自定义存储过程, schema_change_script 可用于删除这些自定义存储过程,并将其替换为支持新架构的用户定义自定义存储过程。

  • 如果未自动重新生成自定义存储过程, schema_change_script可用于重新生成这些存储过程或创建用户定义的自定义存储过程。

[ @force_invalidate_snapshot = ] force_invalidate_快照
启用或禁用使快照失效的功能。 force_invalidate_快照有点,默认值为 1

1 指定对项目所做的更改可能会导致快照无效,如果是这样,则值为 1 将授予新快照发生的权限。

0 指定对项目所做的更改不会导致快照无效。

[ @force_reinit_subscription = ] force_reinit_subscription
启用或禁用使订阅重新初始化的功能。 force_reinit_subscription是一个默认值为 0 的位

0 指定对项目所做的更改不会导致重新初始化订阅。

1 指定对文章的更改可能导致重新初始化订阅,如果是这样,则值为 1 将授予订阅重新初始化的权限。

返回代码值

0(成功)或 1(失败)

权限

只有 sysadmin 固定服务器角色或 db_owner 固定数据库角色的成员才能执行 sp_repladdcolumn。

另请参阅

SQL Server 复制中不推荐使用的功能
系统存储过程 (Transact-SQL)