sp_copysubscription (Transact-SQL)

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

复制请求订阅的订阅数据库,但不复制推送订阅。 仅可复制单个文件数据库。 此存储过程在订阅服务器的订阅数据库中执行。

重要

在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 对于使用参数化筛选器分区的合并发布,建议您使用分区快照的新功能,这些功能可简化大量订阅的初始化。 有关详细信息,请参阅 为包含参数化筛选器的合并发布创建快照。 对于未分区的发布,可以使用备份初始化订阅。 有关详细信息,请参阅 初始化事务订阅(不使用快照)中手动初始化订阅。

Transact-SQL 语法约定

语法

sp_copysubscription
    [ @filename = ] N'filename'
    [ , [ @temp_dir = ] N'temp_dir' ]
    [ , [ @overwrite_existing_file = ] overwrite_existing_file ]
[ ; ]

参数

[ @filename = ] N'filename'

指定保存数据文件副本.mdf的完整路径(包括文件名)的字符串。 @filename为 nvarchar(260),没有默认值。

[ @temp_dir = ] N'temp_dir'

包含临时文件的目录的名称。 @temp_dir为 nvarchar(260),默认值为 NULL. 如果使用 NULLSQL Server 默认数据目录。 该目录应有足够的空间可容纳具有保持所有组合的订阅服务器数据库文件大小的文件。

[ @overwrite_existing_file = ] overwrite_existing_file

一个可选的布尔标志,指定是否覆盖@filename中指定的同名的现有文件。 @overwrite_existing_file为,默认值为 0.

  • 如果1覆盖由@filename指定的文件(如果存在)。
  • 如果 0存在,则存储过程将失败,并且该文件不会被覆盖。

返回代码值

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

注解

sp_copysubscription 用于所有类型的复制,以将订阅数据库复制到文件,作为在订阅服务器上应用快照的替代方法。 必须将数据库配置为仅支持请求订阅。 拥有适当权限的用户可以创建订阅数据库的副本,然后通过电子邮件、复制或将订阅文件(.msf)传输到另一个订阅服务器,然后可将它作为订阅附加。

要复制的订阅数据库的大小必须小于 2 GB。

sp_copysubscription 仅支持具有客户端订阅的数据库,并且数据库具有服务器订阅时无法执行。

权限

只有 sysadmin 固定服务器角色的成员才能执行sp_copysubscription