sp_addmergepushsubscription_agent (Transact-SQL)

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

セキュリティに関する注意セキュリティに関する注意

リモート ディストリビューターを使用するパブリッシャーを構成する場合は、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'
    パブリケーションの名前です。 publication のデータ型は sysname で、既定値はありません。

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

  • [ @subscriber_db = ] 'subscriber_db'
    サブスクリプション データベースの名前です。 subscriber_db のデータ型は sysname で、既定値は NULL です。

  • [ @subscriber_security_mode = ] subscriber_security_mode
    サブスクライバーへ接続して同期するときに使用するセキュリティ モードを指定します。 subscriber_security_mode のデータ型は int で、既定値は 1 です。 0 は SQL Server 認証を表します。 1 は Windows 認証を表します。

  • [ @subscriber_login = ] 'subscriber_login'
    サブスクライバーへ接続して同期するときに使用するサブスクライバー ログインを指定します。 subscriber_security_mode を 0 に設定した場合は、subscriber_login を指定する必要があります。 subscriber_login のデータ型は sysname で、既定値は NULL です。

  • [ @subscriber_password = ] 'subscriber_password'
    SQL Server 認証で使用するサブスクライバーのパスワードを指定します。subscriber_security_mode を 0 に設定した場合は、subscriber_password を指定する必要があります。 subscriber_password のデータ型は sysname で、既定値は NULL です。 サブスクライバー パスワードが使用される場合、サブスクライバー パスワードは自動的に暗号化されます。

    セキュリティに関する注意セキュリティに関する注意

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

  • [ @publisher_security_mode = ] publisher_security_mode
    パブリッシャーへ接続して同期するときに使用するセキュリティ モードを指定します。 publisher_security_mode のデータ型は int で、既定値は 1 です。 0 は SQL Server 認証を表します。 1 は Windows 認証を表します。

  • [ @publisher_login = ] 'publisher_login'
    パブリッシャーへ接続して同期するときに使用するログインを指定します。 publisher_login のデータ型は sysname で、既定値は NULL です。

  • [ @publisher_password = ] 'publisher_password'
    パブリッシャーへの接続時に使用するパスワードを指定します。 publisher_password のデータ型は sysname で、既定値は NULL です。

    セキュリティに関する注意セキュリティに関する注意

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

  • [ @job_login = ] 'job_login'
    エージェントを実行する Windows アカウント用のログインを指定します。 job_login のデータ型は nvarchar(257) で、既定値は NULL です。 この Windows アカウントは、エージェントがディストリビューターに接続する場合と Windows 統合認証を使用してサブスクライバーとパブリッシャーに接続する場合に必ず使用されます。

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

    セキュリティに関する注意セキュリティに関する注意

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

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

  • [ @frequency_type = ] frequency_type
    マージ エージェントをスケジュールに組み込む頻度を指定します。 frequency_type のデータ型は int で、次のいずれかの値を指定できます。

    説明

    1

    指定日時

    2

    要求時

    4

    毎日

    8

    毎週

    16

    毎月

    32

    月単位

    64

    自動的に起動

    128

    定期的

    NULL (既定値)

     

    注意

    64 を指定すると、マージ エージェントは連続モードで実行されます。 これはエージェントに -Continuous パラメーターを設定することに相当します。 詳細については、「レプリケーション マージ エージェント」を参照してください。

  • [ @frequency_interval = ] frequency_interval
    マージ エージェントを実行する曜日を指定します。 frequency_interval のデータ型は int で、次のいずれかの値を指定できます。

    説明

    1

    日曜日

    2

    月曜日

    3

    火曜日

    4

    水曜日

    5

    木曜日

    6

    金曜日

    7

    土曜日

    8

    9

    平日

    10

    週末

    NULL (既定値)

     

  • [ @frequency_relative_interval = ] frequency_relative_interval
    マージ エージェントを実行する日付です。 frequency_type を 32 (月単位) に設定したときにこのパラメーターを使用します。 frequency_relative_interval のデータ型は int で、次のいずれかの値を指定できます。

    説明

    1

    第 1

    2

    第 2

    4

    第 3

    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

    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 の場合、サブスクリプションは同期マネージャーに登録されません。 true の場合、サブスクリプションは同期マネージャーに登録され、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

権限

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

関連項目

参照

sp_addmergesubscription (Transact-SQL)

sp_changemergesubscription (Transact-SQL)

sp_dropmergesubscription (Transact-SQL)

sp_helpmergesubscription (Transact-SQL)

概念

プッシュ サブスクリプションの作成

パブリケーションのサブスクライブ