sp_changepublication_snapshot (Transact-SQL)

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

更改指定发布的快照代理的属性。 此存储过程在发布服务器上对发布数据库执行。

重要

使用远程分发服务器配置发布服务器时,为所有参数(包括 @job_login@job_password)提供的值将作为纯文本发送到分发服务器。 在执行此存储过程之前,应该对发布服务器及其远程分发服务器之间的连接进行加密。 有关详细信息,请参阅将 SQL Server 数据库引擎配置为使用加密连接

Transact-SQL 语法约定

语法

sp_changepublication_snapshot
    [ @publication = ] N'publication'
    [ , [ @frequency_type = ] frequency_type ]
    [ , [ @frequency_interval = ] frequency_interval ]
    [ , [ @frequency_subday = ] frequency_subday ]
    [ , [ @frequency_subday_interval = ] frequency_subday_interval ]
    [ , [ @frequency_relative_interval = ] frequency_relative_interval ]
    [ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]
    [ , [ @active_start_date = ] active_start_date ]
    [ , [ @active_end_date = ] active_end_date ]
    [ , [ @active_start_time_of_day = ] active_start_time_of_day ]
    [ , [ @active_end_time_of_day = ] active_end_time_of_day ]
    [ , [ @snapshot_job_name = ] N'snapshot_job_name' ]
    [ , [ @publisher_security_mode = ] publisher_security_mode ]
    [ , [ @publisher_login = ] N'publisher_login' ]
    [ , [ @publisher_password = ] N'publisher_password' ]
    [ , [ @job_login = ] N'job_login' ]
    [ , [ @job_password = ] N'job_password' ]
    [ , [ @publisher = ] N'publisher' ]
[ ; ]

参数

[ @publication = ] N'publication'

发布的名称。 @publicationsysname,无默认值。

[ @frequency_type = ] frequency_type

指定计划代理的频率。 @frequency_typeint,可以是以下值之一。

说明
1 一次
2 按需
4 每日
8 每周
16 每月
32 与“每月”选项相关
64 自动启动
128 定期
NULL(默认值)

[ @frequency_interval = ] frequency_interval

指定代理在星期几运行。 @frequency_interval为 int,可以是以下值之一。

说明
1 星期日
2 星期一
3 星期二
4 星期三
5 星期四
6 星期五
7 星期六
8
9 工作日
10 周末
NULL(默认值)

[ @frequency_subday = ] frequency_subday

@freq_subday_interval单位。 @frequency_subdayint,可以是以下值之一。

说明
1 一次
2 Second
4 Minute
8 小时
NULL(默认值)

[ @frequency_subday_interval = ] frequency_subday_interval

@frequency_subday间隔。 @frequency_subday_interval为 int,默认值为 NULL.

[ @frequency_relative_interval = ] frequency_relative_interval

快照代理运行的日期。 @frequency_relative_interval为 int,默认值为 NULL.

[ @frequency_recurrence_factor = ] frequency_recurrence_factor

@frequency_type使用的重复因子。 @frequency_recurrence_factor为 int,默认值为 NULL.

[ @active_start_date = ] active_start_date

第一次计划快照代理的日期,格式为 yyyyMMdd@active_start_date为 int,默认值为 NULL.

[ @active_end_date = ] active_end_date

快照代理停止计划的日期,格式为 yyyyMMdd@active_end_date为 int,默认值为 NULL.

[ @active_start_time_of_day = ] active_start_time_of_day

第一次计划快照代理的时间,格式为 HHmmss@active_start_time_of_day为 int,默认值为 NULL.

[ @active_end_time_of_day = ] active_end_time_of_day

快照代理停止计划的时间,格式为 HHmmss@active_end_time_of_day为 int,默认值为 NULL.

[ @snapshot_job_name = ] N'snapshot_job_name'

使用现有作业时,现有快照代理作业名称的名称。 @snapshot_job_namenvarchar(100),默认值为 NULL.

[ @publisher_security_mode = ] publisher_security_mode

连接到发布服务器时代理使用的安全模式。 @publisher_security_mode为 int,默认值为 NULL. 必须为非 SQL Server 发布服务器指定值 0

  • 0 指定 SQL Server 身份验证
  • 1指定Windows 身份验证

重要

请尽可能使用 Windows 身份验证。

[ @publisher_login = ] N'publisher_login'

连接发布服务器时所使用的登录名。 @publisher_login为 sysname,默认值为 NULL.

当@publisher_security_mode为0,必须指定@publisher_login。 如果@publisher_loginNULL@publisher_security_mode1,则在连接到发布服务器时使用@job_login中指定的 Windows 帐户。

[ @publisher_password = ] N'publisher_password'

连接到发布服务器时使用的密码。 @publisher_password为 sysname,默认值为 NULL.

重要

不要使用空白密码。 请使用强密码。 如果可能,请在运行时提示用户输入安全凭据。 如果必须在脚本文件中存储凭据,则必须保护文件以防止未经授权的访问。

[ @job_login = ] N'job_login'

运行代理的 Windows 帐户的登录名。 @job_loginnvarchar(257),默认值为 NULL. 此 Windows 帐户总是用于与分发服务器建立代理连接。 创建新的快照代理作业时,必须提供此参数。 对于非 SQL Server 发布者,无法对此进行更改。

[ @job_password = ] N'job_password'

运行代理的 Windows 帐户的密码。 @job_password为 sysname,默认值为 NULL. 创建新的快照代理作业时,必须提供此参数。

重要

如果可能,请在运行时提示用户输入安全凭据。 如果必须在脚本文件中存储凭据,则必须保护文件以防止未经授权的访问。

[ @publisher = ] N'publisher'

指定非 SQL Server 发布服务器。 @publisher为 sysname,默认值为 NULL.

注意

在 SQL Server 发布服务器上创建快照代理时,不应使用@publisher。

返回代码值

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

注解

sp_changepublication_snapshot 用于快照复制、事务复制和合并复制。

权限

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