sp_repladdcolumn (Transact-SQL)

适用于: SQL Server Azure SQL 托管实例

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

重要

此存储过程已弃用,并且支持向后兼容性。 它只应用于 SQL Server 2000 (8.x) 发布服务器和 SQL Server 2000 (8.x) 重新发布订阅服务器。 此过程不应用于 SQL Server 2005 (9.x) 及更高版本中引入的数据类型的列。

Transact-SQL 语法约定

语法

sp_repladdcolumn
    [ @source_object = ] N'source_object'
    , [ @column = ] N'column'
    , [ @typetext = ] N'typetext'
    [ , [ @publication_to_add = ] N'publication_to_add' ]
    [ , [ @from_agent = ] from_agent ]
    [ , [ @schema_change_script = ] N'schema_change_script' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ ; ]

参数

[ @source_object = ] N'source_object'

包含要添加的新列的表项目的名称。 @source_objectnvarchar(358),没有默认值。

[ @column = ] N'column'

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

[ @typetext = ] N'typetext'

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

[ @publication_to_add = ] N'publication_to_add'

将新列添加到的发布的名称。 @publication_to_addnvarchar(4000),默认值为 all. 如果 all,则包含此表的所有发布都会受到影响。 如果 指定了@publication_to_add ,则只有此发布添加了新列。

[ @from_agent = ] from_agent

指定是否由复制代理执行存储过程。 @from_agent为 int,默认值为 0. 当复制代理执行此存储过程时,将使用值 1 ;在所有其他情况下,应使用默认值 0

[ @schema_change_script = ] N'schema_change_script'

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

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

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

[ @force_invalidate_snapshot = ] force_invalidate_snapshot

启用或禁用使快照失效的功能。 @force_invalidate_snapshot为,默认值为 1.

  • 1 指定对文章的更改可能会导致快照无效,如果是这样,则为新快照的发生授予权限的值 1

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

[ @force_reinit_subscription = ] force_reinit_subscription

启用或禁用重新初始化订阅的功能。 @force_reinit_subscription为,默认值为 0.

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

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

返回代码值

0(成功)或 1(失败)。

权限

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