sp_addmergepushsubscription_agent (Transact-sql SQL)

適用対象: はいSQL Server (サポートされているすべてのバージョン) はいAzure SQL Managed Instance

マージパブリケーションに対するプッシュサブスクリプションの同期をスケジュールするために使用する、新しいエージェントジョブを追加します。 このストアドプロシージャは、パブリケーションデータベースの Publisher で実行されます。

重要

リモート ディストリビューターを使用するパブリッシャーを構成する場合は、 job_login および job_password を含むすべてのパラメーターに指定された値がディストリビューターにプレーン テキストとして送信されます。 このストアド プロシージャを実行する前に、パブリッシャーとリモート ディストリビューターの間の接続を暗号化する必要があります。 詳細については、「データベース エンジンへの暗号化接続の有効化 (SQL Server 構成マネージャー)」を参照してください。

トピック リンク アイコン Transact-SQL 構文表記規則

構文

  
sp_addmergepushsubscription_agent [ @publication =] 'publication'   
    [ , [ @subscriber = ] 'subscriber' ]   
    [ , [ @subscriber_db = ] 'subscriber_db' ]   
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ]   
    [ , [ @subscriber_login = ] 'subscriber_login' ]   
    [ , [ @subscriber_password = ] 'subscriber_password' ]   
    [ , [ @publisher_security_mode = ] publisher_security_mode ]   
    [ , [ @publisher_login = ] 'publisher_login' ]   
    [ , [ @publisher_password = ] 'publisher_password' ]   
    [ , [ @job_login = ] 'job_login' ]   
    [ , [ @job_password = ] 'job_password' ]   
    [ , [ @job_name = ] 'job_name' ]   
    [ , [ @frequency_type = ] frequency_type ]   
    [ , [ @frequency_interval = ] frequency_interval ]   
    [ , [ @frequency_relative_interval = ] frequency_relative_interval ]   
    [ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]   
    [ , [ @frequency_subday = ] frequency_subday ]   
    [ , [ @frequency_subday_interval = ] frequency_subday_interval ]   
    [ , [ @active_start_time_of_day = ] active_start_time_of_day ]   
    [ , [ @active_end_time_of_day = ] active_end_time_of_day ]   
    [ , [ @active_start_date = ] active_start_date ]   
    [ , [ @active_end_date = ] active_end_date ]   
    [ , [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr' ]   

引数

[ @publication = ] 'publication' パブリケーションの名前を指定します。 publicationsysname,、既定値はありません。

[ @subscriber = ] 'subscriber' サブスクライバーの名前を指定します。 サブスクライバーsysname,、既定値は NULL です。

[ @subscriber_db = ] 'subscriber_db' サブスクリプションデータベースの名前を指定します。 subscriber_dbsysname,、既定値は NULL です。

[ @subscriber_security_mode = ] subscriber_security_mode 同期時にサブスクライバーに接続するときに使用するセキュリティモードを示します。 subscriber_security_modeint,、既定値は1です。 0 の場合、認証を指定し SQL Server ます。 1 の場合、Windows 認証を指定します。

[ @subscriber_login = ] 'subscriber_login' サブスクライバーに接続して同期するときに使用するサブスクライバーログインを示します。 subscriber_security_mode0 に設定されている場合は subscriber_login が必要です。 subscriber_loginsysname,、既定値は NULL です。

[ @subscriber_password = ] 'subscriber_password' 認証用のサブスクライバーパスワードを入力し SQL Server ます。 subscriber_security_mode0 に設定されている場合は subscriber_password が必要です。 subscriber_passwordsysname,、既定値は NULL です。 サブスクライバーパスワードが使用されている場合は、自動的に暗号化されます。

重要

可能であれば、実行時、ユーザーに対してセキュリティ資格情報の入力を要求します。 スクリプト ファイルに資格情報を格納する必要がある場合は、不正アクセスを防ぐために、ファイルを保護します。

[ @publisher_security_mode = ] publisher_security_mode同期時に Publisher に接続するときに使用するセキュリティモードを示します。 publisher_security_modeint,、既定値は1です。 0 の場合、認証を指定し SQL Server ます。 1 の場合、Windows 認証を指定します。

[ @publisher_login = ] 'publisher_login'同期時に Publisher に接続するときに使用するログインを示します。 publisher_loginsysname,、既定値は NULL です。

[ @publisher_password = ] 'publisher_password'Publisher に接続するときに使用するパスワードを入力します。 publisher_passwordsysname,、既定値は NULL です。

重要

可能であれば、実行時、ユーザーに対してセキュリティ資格情報の入力を要求します。 スクリプト ファイルに資格情報を格納する必要がある場合は、不正アクセスを防ぐために、ファイルを保護します。

[ @job_login = ] 'job_login'エージェントを実行する Windows アカウントのログインを指定します。 job_loginnvarchar (257) で、既定値は NULL です。 この Windows アカウントは、ディストリビューターへのエージェント接続、および Windows 統合認証を使用する場合のサブスクライバーおよび Publisher への接続に常に使用されます。

[ @job_password = ] 'job_password'エージェントを実行する Windows アカウントのパスワードを指定します。 job_passwordsysname であり、既定値はありません。

重要

可能であれば、実行時、ユーザーに対してセキュリティ資格情報の入力を要求します。 スクリプト ファイルに資格情報を格納する必要がある場合は、不正アクセスを防ぐために、ファイルを保護します。

[ @job_name = ] 'job_name' 既存のエージェントジョブの名前を指定します。 job_namesysname で、既定値は NULL です。 このパラメーターは、新しく作成されたジョブ (既定値) ではなく、既存のジョブを使用してサブスクリプションを同期する場合にのみ指定します。 Sysadmin 固定サーバーロールのメンバーでない場合は、 job_name を指定するときに job_loginjob_password を指定する必要があります。

[ @frequency_type = ] frequency_type マージエージェントをスケジュールする頻度を指定します。 frequency_typeint,、値は次のいずれかを指定することができます。

説明
1 1 回
2 オン デマンド
4 毎日
8 週次
16 月単位
32 月単位の相対
64 自動開始
128 繰り返し
NULL (既定値)

注意

64 を指定すると、マージエージェントが連続モードで実行されます。 これは、エージェントの -Continuous パラメーターの設定に対応しています。 詳細については、「 Replication Merge Agent」を参照してください。

[ @frequency_interval = ] frequency_interval マージエージェントを実行する曜日。 frequency_intervalint,、値は次のいずれかを指定することができます。

説明
1 土曜日
2 月曜日
3 Tuesday
4 水曜日
5 Thursday
6 金曜日
7 土曜日
8 日間
9 平日
10 週末
NULL (既定値)

[ @frequency_relative_interval = ] frequency_relative_interval 日付を指定マージ エージェント。 このパラメーターは、このパラメーター frequency_type 32 (月次相対) に設定されている場合に使用されます。 frequency_relative_interval int であり、次のいずれかの値を指定できます。

説明
1 First
2 Second
4 Third
8 4 番目
16 末尾
NULL (既定値)

[ @frequency_recurrence_factor = ] frequency_recurrence_factorで使用される繰り返し 係数frequency_type。 frequency_recurrence_factorは int で、既定値は NULL です。

[ @frequency_subday = ] frequency_subday 定義された期間中にスケジュールを変更する頻度を指定します。 frequency_subday int であり、次のいずれかの値を指定できます。

説明
1 1 度
2 Second
4
8 時間
NULL (既定値)

[ @frequency_subday_interval = ] frequency_subday_interval指定する間隔 frequency_subday。 frequency_subday_intervalは 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 です。

[ @active_start_date = ] active_start_date YYYYMMDD 形式でマージ エージェントが最初にスケジュールされる日付を指定します。 active_start_dateは int で、既定値は NULL です。

[ @active_end_date = ] active_end_date YYYYMMDD 形式マージ エージェントスケジュールが停止する日付を指定します。 active_end_dateは int で、既定値は NULL です。

[ @enabled_for_syncmgr = ] 'enabled_for_syncmgr'同期マネージャーを使用してサブスクリプションを同期Windows指定します。 enabled_for_syncmgr nvarchar(5) で、既定値は FALSE です。 false 場合、サブスクリプションは Synchronization Manager に登録されません。 true 場合、サブスクリプションは Synchronization Manager に登録され、 を開始せずに同期できます SQL Server Management Studio 。

リターン コードの値

0 (成功) または 1 (失敗)

解説

sp_addmergepushsubscription_agent はマージ レプリケーションで使用され、 と同様の機能を sp_addpushsubscription_agent。

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica'; 
SET @hostname = N'adventure-works\david8'

-- Add a push subscription to a merge publication.
USE [AdventureWorks2012];
EXEC sp_addmergesubscription 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @subscription_type = N'push',
  @hostname = @hostname;

--Add an agent job to synchronize the push subscription.
EXEC sp_addmergepushsubscription_agent 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @job_login = $(Login), 
  @job_password = $(Password);
GO

アクセス許可

固定サーバー ロール または固定データベース ロールの sysadmin db_ownerメンバーだけが、 を実行 sp_addmergepushsubscription_agent。

参照

ssSDSFull
Subscribe to Publications
sp_addmergesubscription (Transact-SQL)
sp_changemergesubscription (Transact-SQL)
sp_dropmergesubscription (Transact-SQL)
sp_helpmergesubscription (Transact-SQL)