sp_addsubscription (Transact-sql)sp_addsubscription (Transact-SQL)

適用対象: ○SQL Server ○Azure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

パブリケーションにサブスクリプションを追加し、サブスクライバーの状態を設定します。Adds a subscription to a publication and sets the Subscriber status. このストアド プロシージャは、パブリッシャー側でパブリケーション データベースについて実行されます。This stored procedure is executed at the Publisher on the publication database.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

  
sp_addsubscription [ @publication = ] 'publication'  
    [ , [ @article = ] 'article']  
    [ , [ @subscriber = ] 'subscriber' ]  
    [ , [ @destination_db = ] 'destination_db' ]  
        [ , [ @sync_type = ] 'sync_type' ]  
    [ , [ @status = ] 'status'  
        [ , [ @subscription_type = ] 'subscription_type' ]  
    [ , [ @update_mode = ] 'update_mode' ]  
    [ , [ @loopback_detection = ] 'loopback_detection' ]  
    [ , [ @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 ]  
    [ , [ @optional_command_line = ] 'optional_command_line' ]  
    [ , [ @reserved = ] 'reserved' ]  
    [ , [ @enabled_for_syncmgr= ] 'enabled_for_syncmgr' ]  
    [ , [ @offloadagent= ] remote_agent_activation]  
    [ , [ @offloadserver= ] 'remote_agent_server_name' ]  
    [ , [ @dts_package_name= ] 'dts_package_name' ]  
    [ , [ @dts_package_password= ] 'dts_package_password' ]  
    [ , [ @dts_package_location= ] 'dts_package_location' ]  
    [ , [ @distribution_job_name= ] 'distribution_job_name' ]  
    [ , [ @publisher = ] 'publisher' ]  
    [ , [ @backupdevicetype = ] 'backupdevicetype' ]  
    [ , [ @backupdevicename = ] 'backupdevicename' ]  
    [ , [ @mediapassword = ] 'mediapassword' ]  
    [ , [ @password = ] 'password' ]  
    [ , [ @fileidhint = ] fileidhint ]  
    [ , [ @unload = ] unload ]  
    [ , [ @subscriptionlsn = ] subscriptionlsn ]  
    [ , [ @subscriptionstreams = ] subscriptionstreams ]  
    [ , [ @subscriber_type = ] subscriber_type ]  
    [ , [ @memory_optimized = ] memory_optimized ]  

引数Arguments

[ @publication=] 'publication'[ @publication=] 'publication'
パブリケーションの名前です。Is the name of the publication. パブリケーションsysname 、既定値はありません。publication is sysname, with no default.

[ @article=] 'アーティクル'[ @article=] 'article'
パブリケーションがサブスクライブされるアーティクルを指定します。Is the article to which the publication is subscribed. アーティクルsysnameで、既定値は all です。article is sysname, with a default of all. all に設定した場合は、そのパブリケーションのすべてのアーティクルに対してサブスクリプションが加えられます。If all, a subscription is added to all articles in that publication. Oracle パブリッシャーの場合、サポートされている値は all と NULL だけです。Only values of all or NULL are supported for Oracle Publishers.

[ @subscriber=] 'サブスクライバー'[ @subscriber=] 'subscriber'
サブスクライバーの名前です。Is the name of the Subscriber. サブスクライバーsysname 、既定値は NULL です。subscriber is sysname, with a default of NULL.

[ @destination_db=] 'destination_db'[ @destination_db=] 'destination_db'
レプリケートされたデータの格納先となるデータベースの名前を指定します。Is the name of the destination database in which to place replicated data. destination_dbsysname,、既定値は NULL です。destination_db is sysname, with a default of NULL. NULL の場合、 destination_dbは、パブリケーションデータベースの名前に設定されます。When NULL, destination_db is set to the name of the publication database. Oracle パブリッシャーの場合は、 destination_dbを指定する必要があります。For Oracle Publishers, destination_db must be specified. SQL Server 以外のサブスクライバーの場合は、 destination_dbに対して (既定の転送先) の値を指定します。For a non-SQL Server Subscriber, specify a value of (default destination) for destination_db.

[ @sync_type=] 'sync_type'[ @sync_type=] 'sync_type'
サブスクリプションの同期の種類を示します。Is the subscription synchronization type. sync_typenvarchar (255) ,、値は次のいずれかを指定することができます。sync_type is nvarchar(255), and can be one of the following values:

Value 説明Description
nonenone サブスクライバーには、パブリッシュされたテーブルのスキーマと初期データが既に存在します。Subscriber already has the schema and initial data for published tables.

注:このオプションは非推奨とされます。Note: This option has been deprecated. 代わりに replication support only を使用してください。Use replication support only instead.
automatic (既定値)automatic (default) パブリッシュされたテーブルのスキーマと初期データは、最初にサブスクライバーに転送されます。Schema and initial data for published tables are transferred to the Subscriber first.
replication support onlyreplication support only 更新サブスクリプションをサポートするアーティクルのカスタム ストアド プロシージャとトリガーがサブスクライバー側で必要に応じて自動的に生成されます。Provides automatic generation at the Subscriber of article custom stored procedures and triggers that support updating subscriptions, if appropriate. サブスクライバーがパブリッシュされたテーブルのスキーマと初期データを既に持っていることを前提としています。Assumes that the Subscriber already has the schema and initial data for published tables. ピアツーピアトランザクションレプリケーショントポロジを構成する場合は、トポロジ内のすべてのノードのデータが同一であることを確認します。When configuring a peer-to-peer transactional replication topology, ensure that the data at all nodes in the topology is identical. 詳細については、「 Peer-to-Peer Transactional Replication」を参照してください。For more information, see Peer-to-Peer Transactional Replication.

SQL Server 以外のパブリケーションに対するサブスクリプションではサポートされていません。Not supported for subscriptions to non-SQL Server publications.
バックアップを使用した初期化initialize with backup パブリッシュされたテーブルのスキーマと初期データは、パブリケーション データベースのバックアップから取得されます。Schema and initial data for published tables are obtained from a backup of the publication database. サブスクライバーがパブリケーションデータベースのバックアップにアクセスできることを前提としています。Assumes that the Subscriber has access to a backup of the publication database. バックアップの場所とメディアの種類は、 backupdevicenamebackupdevicetypeによって指定されます。The location of the backup and media type for the backup are specified by backupdevicename and backupdevicetype. このオプションを使用する場合、ピアツーピアトランザクションレプリケーショントポロジは、構成中に停止する必要はありません。When using this option, a peer-to-peer transactional replication topology need not be quiesced during configuration.

SQL Server 以外のパブリケーションに対するサブスクリプションではサポートされていません。Not supported for subscriptions to non-SQL Server publications.
lsn から初期化するinitialize from lsn ピア ツー ピア トランザクション レプリケーション トポロジにノードを追加するときに使用します。Used when you are adding a node to a peer-to-peer transactional replication topology. @subscriptionlsn と共に使用すると、関連するトランザクションのすべてが、新しいノードに確実にレプリケートされます。Used with @subscriptionlsn to make sure that all relevant transactions are replicated to the new node. サブスクライバーがパブリッシュされたテーブルのスキーマと初期データを既に持っていることを前提としています。Assumes that the Subscriber already has the schema and initial data for published tables. 詳細については、「 Peer-to-Peer Transactional Replication」を参照してください。For more information, see Peer-to-Peer Transactional Replication.

注意

システム テーブルとデータは常に転送されます。System tables and data are always transferred.

[ @status=] 'status'[ @status=] 'status'
はサブスクリプションの状態です。Is the subscription status. statusの部分はsysnameで、既定値は NULL です。status is sysname, with a default value of NULL. このパラメーターが明示的に設定されていない場合、レプリケーションによって、次のいずれかの値に自動的に設定されます。When this parameter is not explicitly set, replication automatically sets it to one of these values.

Value 説明Description
activeactive サブスクリプションが初期化され、変更を受け入れる準備ができました。Subscription is initialized and ready to accept changes. このオプションは、 sync_typeの値が none、initialize with backup、または replication support only の場合に設定されます。This option is set when the value of sync_type is none, initialize with backup, or replication support only.
subscribedsubscribed サブスクリプションを初期化する必要があります。Subscription needs to be initialized. このオプションは、 sync_typeの値が automatic の場合に設定されます。This option is set when the value of sync_type is automatic.

[ @subscription_type=] 'subscription_type'[ @subscription_type=] 'subscription_type'
サブスクリプションの種類を示します。Is the type of subscription. subscription_typenvarchar (4) ,、既定値は push です。subscription_type is nvarchar(4), with a default of push. push または pull に設定できます。Can be push or pull. プッシュサブスクリプションのディストリビューションエージェントはディストリビューターに存在し、プルサブスクリプションのディストリビューションエージェントはサブスクライバーに存在します。The Distribution Agents of push subscriptions reside at the Distributor, and the Distribution Agents of pull subscriptions reside at the Subscriber. subscription_typeをプルして、パブリッシャーに知られている名前付きプルサブスクリプションを作成できます。subscription_type can be pull to create a named pull subscription that is known to the Publisher. 詳細については、「パブリケーションのサブスクライブ」をご覧ください。For more information, see Subscribe to Publications.

注意

匿名サブスクリプションでは、このストアドプロシージャを使用する必要はありません。Anonymous subscriptions do not need to use this stored procedure.

[ @update_mode=] 'update_mode'[ @update_mode=] 'update_mode'
更新の種類を示します。update_modenvarchar (30) ,、これらの値のいずれかを指定することができます。Is the type of update.update_mode is nvarchar(30), and can be one of these values.

Value 説明Description
read only (既定値)read only (default) サブスクリプションは読み取り専用です。The subscription is read-only. サブスクライバーでの変更は、パブリッシャーに送信されません。The changes at the Subscriber are not sent to the Publisher.
sync transync tran 即時更新サブスクリプションのサポートを有効にします。Enables support for immediate updating subscriptions. Oracle パブリッシャーではサポートされていません。Not supported for Oracle Publishers.
キューに登録されたトランザクションqueued tran サブスクリプションのキュー更新を有効にします。Enables the subscription for queued updating. サブスクライバーでデータ変更を行い、キューに格納して、パブリッシャーに反映することができます。Data modifications can be made at the Subscriber, stored in a queue, and then propagated to the Publisher. Oracle パブリッシャーではサポートされていません。Not supported for Oracle Publishers.
failoverfailover キュー更新をフェールオーバーとするサブスクリプションの即時更新を有効にします。Enables the subscription for immediate updating with queued updating as a failover. サブスクライバーでデータを変更し、それを直ちにパブリッシャーに配信することができます。Data modifications can be made at the Subscriber and propagated to the Publisher immediately. パブリッシャーとサブスクライバーが接続されていない場合は、更新モードを変更することにより、サブスクライバーで加えられたデータの変更を、サブスクライバーとパブリッシャーが接続されるまで、キューに格納することができます。If the Publisher and Subscriber are not connected, the updating mode can be changed so that data modifications made at the Subscriber are stored in a queue until the Subscriber and Publisher are reconnected. Oracle パブリッシャーではサポートされていません。Not supported for Oracle Publishers.
キューに置かれたフェールオーバーqueued failover 即時更新モードへの変更が可能なキュー更新サブスクリプションとしてサブスクリプションを有効にします。Enables the subscription as a queued updating subscription with the ability to change to immediate updating mode. サブスクライバーでデータを変更し、サブスクライバーとパブリッシャーの間に接続が確立されるまで、キューに格納することができます。Data modifications can be made at the Subscriber and stored in a queue until a connection is established between the Subscriber and Publisher. 連続接続が確立されると、更新モードを即時更新に変更できます。When a continuous connection is established the updating mode can be changed to immediate updating. Oracle パブリッシャーではサポートされていません。Not supported for Oracle Publishers.

サブスクライブされるパブリケーションで DTS が許可されている場合、値 synctran および queued tran は使用できません。Note that the values synctran and queued tran are not allowed if the publication being subscribed to allows DTS.

[ @loopback_detection=] 'loopback_detection'[ @loopback_detection=] 'loopback_detection'
ディストリビューションエージェントがサブスクライバーに送信されたトランザクションをサブスクライバーに戻すかどうかを指定します。Specifies if the Distribution Agent sends transactions that originated at the Subscriber back to the Subscriber. loopback_detectionnvarchar (5) ,、これらの値のいずれかを指定することができます。loopback_detection is nvarchar(5), and can be one of these values.

[値]Value 説明Description
truetrue ディストリビューションエージェントは、サブスクライバーで発生したトランザクションをサブスクライバーに送り返しません。Distribution Agent does not send transactions originated at the Subscriber back to the Subscriber. 双方向トランザクション レプリケーションで使用されます。Used with bidirectional transactional replication. 詳細については、「 Bidirectional Transactional Replication」を参照してください。For more information, see Bidirectional Transactional Replication.
Falsefalse ディストリビューション エージェントは、サブスクライバーで発生したトランザクションをサブスクライバーに戻します。Distribution Agent sends transactions that originated at the Subscriber back to the Subscriber.
NULL (既定値)NULL (default) SQL ServerSQL Server サブスクライバーの場合は true、SQL ServerSQL Server 以外のサブスクライバーの場合は false に自動設定されます。Automatically set to true for a SQL ServerSQL Server Subscriber and false for a non-SQL ServerSQL Server Subscriber.

[ @frequency_type=] frequency_type[ @frequency_type=] frequency_type
ディストリビューションタスクをスケジュールする頻度を指定します。Is the frequency with which to schedule the distribution task. frequency_typeは int,、これらの値のいずれかを指定することができます。frequency_type is int, and can be one of these values.

[値]Value 説明Description
11 指定日時One time
22 [要求時]On demand
44 毎日。Daily
88 毎週。Weekly
1616 毎月。Monthly
3232 月単位の相対Monthly relative
64 (既定値)64 (default) 自動開始Autostart
128128 定期Recurring

[ @frequency_interval=] frequency_interval[ @frequency_interval=] frequency_interval
Frequency_typeによって設定された頻度に適用する値を指定します。Is the value to apply to the frequency set by frequency_type. frequency_intervalint,、既定値は NULL です。frequency_interval is int, with a default of NULL.

[ @frequency_relative_interval=] frequency_relative_interval[ @frequency_relative_interval=] frequency_relative_interval
ディストリビューションエージェントの日付を指定します。Is the date of the Distribution Agent. このパラメーターは、 frequency_typeが 32 (月単位) に設定されている場合に使用されます。This parameter is used when frequency_type is set to 32 (monthly relative). frequency_relative_intervalint,、これらの値のいずれかを指定することができます。frequency_relative_interval is int, and can be one of these values.

Value 説明Description
11 FirstFirst
22 SecondSecond
44 サードパーティThird
88 4 番目Fourth
1616 LastLast
NULL (既定値)NULL (default)

[ @frequency_recurrence_factor=] frequency_recurrence_factor[ @frequency_recurrence_factor=] frequency_recurrence_factor
Frequency_typeによって使用される定期実行係数を示します。Is the recurrence factor used by frequency_type. frequency_recurrence_factorint,、既定値は NULL です。frequency_recurrence_factor is int, with a default of NULL.

[ @frequency_subday=] frequency_subday[ @frequency_subday=] frequency_subday
定義した期間にスケジュールを組み直す頻度を分単位で指定します。Is how often, in minutes, to reschedule during the defined period. frequency_subdayint,、これらの値のいずれかを指定することができます。frequency_subday is int, and can be one of these values.

Value 説明Description
11 1 回。Once
22 SecondSecond
44 MinuteMinute
88 HourHour
NULLNULL

[ @frequency_subday_interval=] frequency_subday_interval[ @frequency_subday_interval=] frequency_subday_interval
Frequency_subdayの間隔を指定します。Is the interval for frequency_subday. frequency_subday_intervalint,、既定値は NULL です。frequency_subday_interval is int, with a default of NULL.

[ @active_start_time_of_day=] active_start_time_of_day[ @active_start_time_of_day=] active_start_time_of_day
ディストリビューションエージェントを最初にスケジュール設定する時刻を HHMMSS 形式で指定します。Is the time of day when the Distribution Agent is first scheduled, formatted as HHMMSS. active_start_time_of_dayint 、既定値は NULL です。active_start_time_of_day is int, with a default of NULL.

[ @active_end_time_of_day=] active_end_time_of_day[ @active_end_time_of_day=] active_end_time_of_day
ディストリビューションエージェントのスケジュール設定を停止する時刻を HHMMSS 形式で指定します。Is the time of day when the Distribution Agent stops being scheduled, formatted as HHMMSS. active_end_time_of_dayint,、既定値は NULL です。active_end_time_of_day is int, with a default of NULL.

[ @active_start_date=] active_start_date[ @active_start_date=] active_start_date
ディストリビューションエージェントを最初にスケジュール設定する日付を YYYYMMDD 形式で指定します。Is the date when the Distribution Agent is first scheduled, formatted as YYYYMMDD. active_start_dateint,、既定値は NULL です。active_start_date is int, with a default of NULL.

[ @active_end_date=] active_end_date[ @active_end_date=] active_end_date
ディストリビューション エージェントのスケジュール設定を停止する日付を YYYYMMDD 形式で指定します。Is the date when the Distribution Agent stops being scheduled, formatted as YYYYMMDD. active_end_dateint,、既定値は NULL です。active_end_date is int, with a default of NULL.

[ @optional_command_line=] 'optional_command_line'[ @optional_command_line=] 'optional_command_line'
実行するオプションのコマンドプロンプトを指定します。Is the optional command prompt to execute. optional_command_linenvarchar (4000) ,、既定値は NULL です。optional_command_line is nvarchar(4000), with a default of NULL.

[ @reserved=] 'reserved'[ @reserved=] 'reserved'

単に情報を示すためだけに特定されます。Identified for informational purposes only. サポートされていません。Not supported. 将来の互換性は保証されません。Future compatibility is not guaranteed.

[ @enabled_for_syncmgr=] 'enabled_for_syncmgr'[ @enabled_for_syncmgr=] 'enabled_for_syncmgr'
Windows 同期マネージャーを使用してMicrosoftMicrosoft 、サブスクリプションを同期できるかどうかを指定します。Is whether the subscription can be synchronized through MicrosoftMicrosoft Windows Synchronization Manager. enabled_for_syncmgrnvarchar (5) ,、既定値は FALSE。enabled_for_syncmgr is nvarchar(5), with a default of FALSE. False の場合、サブスクリプションは Windows 同期マネージャーに登録されていません。If false, the subscription is not registered with Windows Synchronization Manager. true の場合、サブスクリプションは Windows 同期マネージャーに登録され、SQL Server Management StudioSQL Server Management Studio を起動せずに同期させることができます。If true, the subscription is registered with Windows Synchronization Manager and can be synchronized without starting SQL Server Management StudioSQL Server Management Studio. Oracle パブリッシャーではサポートされていません。Not supported for Oracle Publishers.

[ @offloadagent= ] 'remote_agent_activation'[ @offloadagent= ] 'remote_agent_activation'
エージェントをリモートでアクティブ化できることを指定します。Specifies that the agent can be activated remotely. remote_agent_activationの部分はbitで、既定値は0です。remote_agent_activation is bit with a default of 0.

注意

このパラメーターは非推奨とされており、スクリプトの旧バージョンとの互換性のためだけに保持されています。This parameter has been deprecated and is only maintained for backward compatibility of scripts.

[ @offloadserver= ] 'remote_agent_server_name'[ @offloadserver= ] 'remote_agent_server_name'
リモートからのアクティブ化に使用するサーバーのネットワーク名を指定します。Specifies the network name of server to be used for remote activation. remote_agent_server_namesysname,、既定値は NULL です。remote_agent_server_nameis sysname, with a default of NULL.

[ @dts_package_name= ] 'dts_package_name'[ @dts_package_name= ] 'dts_package_name'
データ変換サービス (DTS) パッケージの名前を指定します。Specifies the name of the Data Transformation Services (DTS) package. dts_package_namesysnameで、既定値は NULL です。dts_package_name is a sysname with a default of NULL. たとえば、DTSPub_Package というパッケージを指定するには、パラメーターを @dts_package_name = N'DTSPub_Package' にする必要があります。For example, to specify a package of DTSPub_Package, the parameter would be @dts_package_name = N'DTSPub_Package'. このパラメーターは、プッシュサブスクリプションで使用できます。This parameter is available for push subscriptions. プル サブスクリプションに DTS パッケージ情報を追加するには、sp_addpullsubscription_agent を使用します。To add DTS package information to a pull subscription, use sp_addpullsubscription_agent.

[ @dts_package_password= ] 'dts_package_password'[ @dts_package_password= ] 'dts_package_password'
パッケージのパスワードを指定します (存在する場合)。Specifies the password on the package, if there is one. dts_package_passwordsysname既定値は NULL です。dts_package_password is sysname with a default of NULL.

注意

Dts_package_nameを指定する場合は、パスワードを指定する必要があります。You must specify a password if dts_package_name is specified.

[ @dts_package_location= ] 'dts_package_location'[ @dts_package_location= ] 'dts_package_location'
パッケージの場所を指定します。Specifies the package location. dts_package_locationnvarchar (12) ,、既定値はディストリビューターです。dts_package_location is a nvarchar(12), with a default of DISTRIBUTOR. パッケージの場所としては、distributor または subscriber を指定できます。The location of the package can be distributor or subscriber.

[ @distribution_job_name= ] 'distribution_job_name'[ @distribution_job_name= ] 'distribution_job_name'

単に情報を示すためだけに特定されます。Identified for informational purposes only. サポートされていません。Not supported. 将来の互換性は保証されません。Future compatibility is not guaranteed.

[ @publisher=] 'パブリッシャー'[ @publisher= ] 'publisher'
MicrosoftMicrosoft 以外SQL ServerSQL Serverのパブリッシャーを指定します。Specifies a non- MicrosoftMicrosoft SQL ServerSQL Server Publisher. publishersysnameで、既定値は NULL です。publisher is sysname, with a default of NULL.

注意

パブリッシャーに対してパブリッシャーSQL ServerSQL Server指定することはできません。publisher should not be specified for a SQL ServerSQL Server Publisher.

[ @backupdevicetype=] 'backupdevicetype'[ @backupdevicetype= ] 'backupdevicetype'
バックアップからサブスクライバーを初期化する際に使用するバックアップ デバイスの種類を指定します。Specifies the type of backup device used when initializing a Subscriber from a backup. backupdevicetypenvarchar (20) ,、次の値のいずれかを指定することができます。backupdevicetype is nvarchar(20), and can be one of these values:

[値]Value 説明Description
logical (既定値)logical (default) バックアップデバイスは論理デバイスです。The backup device is a logical device.
ディスクdisk バックアップデバイスはディスクドライブです。The backup device is disk drive.
テープtape バックアップデバイスがテープドライブであるThe backup device is a tape drive

backupdevicetypeは、 sync_methodが initialize_with_backup に設定されている場合にのみ使用されます。backupdevicetype is only used when sync_methodis set to initialize_with_backup.

[ @backupdevicename= ] 'backupdevicename'[ @backupdevicename= ] 'backupdevicename'
バックアップからサブスクライバーを初期化する際に使用するデバイスの名前を指定します。Specifies the name of the device used when initializing a Subscriber from a backup. backupdevicenamenvarchar (1000) ,、既定値は NULL です。backupdevicename is nvarchar(1000), with a default of NULL.

[ @mediapassword=] 'mediapassword'[ @mediapassword= ] 'mediapassword'
メディア セットのパスワードを指定します (メディアをフォーマットしたときにパスワードを設定した場合)。Specifies a password for the media set if a password was set when the media was formatted. mediapasswordsysname,、既定値は NULL です。mediapassword is sysname, with a default value of NULL.

注意

この機能はメンテナンス モードであり、Microsoft SQL Server の将来のバージョンで削除される可能性があります。This feature is in maintenance mode and may be removed in a future version of Microsoft SQL Server. 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

[ @password= ] 'password'[ @password= ] 'password'
バックアップのパスワードを指定します (バックアップを作成したときにパスワードを設定した場合)。Specifies a password for the backup if a password was set when the backup was created. パスワードsysname,、既定値は NULL です。passwordis sysname, with a default value of NULL.

[ @fileidhint= ] fileidhint[ @fileidhint= ] fileidhint
復元するバックアップセットの序数値を識別します。Identifies an ordinal value of the backup set to be restored. fileidhintint,、既定値は NULL です。fileidhint is int, with a default value of NULL.

[ @unload= ] unload[ @unload= ] unload
バックアップからの初期化が完了した後テープ バックアップ デバイスをアンロードするかどうかを指定します。Specifies if a tape backup device should be unloaded after the initialization from back is complete. unloadビット,、既定値は1です。unload is bit, with a default value of 1. 1は、テープをアンロードすることを指定します。1 specifies that the tape should be unloaded. unloadは、 backupdevicetypeが tape の場合にのみ使用されます。unload is only used when backupdevicetype is tape.

[ @subscriptionlsn= ] subscriptionlsn[ @subscriptionlsn= ] subscriptionlsn
サブスクリプションがピアツーピアトランザクションレプリケーショントポロジ内のノードへの変更の配信を開始するログシーケンス番号 (LSN) を指定します。Specifies the log sequence number (LSN) at which a subscription should start delivering changes to a node in a peer-to-peer transactional replication topology. 値を initialize @sync_type from lsn と共に使用して、関連するすべてのトランザクションが新しいノードに確実にレプリケートされるようにします。Used with a @sync_type value of initialize from lsn to make sure that all relevant transactions are replicated to a new node. 詳細については、「 Peer-to-Peer Transactional Replication」を参照してください。For more information, see Peer-to-Peer Transactional Replication.

[ @subscriptionstreams= ] subscriptionstreams[ @subscriptionstreams= ] subscriptionstreams
単一のスレッドを使用しているときに、トランザクションに関連したさまざまな特性を維持しながら、サブスクライバーに対してバッチ変更を適用することのできる、ディストリビューション エージェントあたりの接続数です。Is the number of connections allowed per Distribution Agent to apply batches of changes in parallel to a Subscriber, while maintaining many of the transactional characteristics present when using a single thread. subscriptionstreamstinyint,、既定値は NULL です。subscriptionstreams is tinyint, with a default value of NULL. サポートされている値の範囲は 1 ~ 64 です。A range of values from 1 to 64 is supported. このパラメーターは、以外SQL ServerSQL Serverのサブスクライバー、Oracle パブリッシャー、またはピアツーピアサブスクリプションではサポートされていません。This parameter is not supported for non- SQL ServerSQL Server Subscribers, Oracle Publishers or peer-to-peer subscriptions. サブスクリプション ストリームが使用されるたびに、msreplication_subscriptions テーブルに行が追加され (ストリームごとに 1 行)、agent_id が NULL に設定されます。Whenever subscription streams is used additional rows are added in the msreplication_subscriptions table (1 per stream) with an agent_id set to NULL.

注意

Subscriptionstreams は、 Transact-SQLTransact-SQLを渡すように構成されたアーティクルでは使用できません。Subscriptionstreams do not work for articles configured to deliver Transact-SQLTransact-SQL. subscriptionstreams を使用するには、代わりにストアド プロシージャの呼び出しを渡すようにアーティクルを構成します。To use subscriptionstreams, configure articles to deliver stored procedure calls instead.

[ @subscriber_type=] subscriber_type[ @subscriber_type=] subscriber_type
サブスクライバーの種類を示します。Is the type of Subscriber. subscriber_typetinyint,、これらの値のいずれかを指定できます。subscriber_type is tinyint, and can be one of these values.

Value 説明Description
0 (既定値)0 (default) SQL ServerSQL ServerサブスクライバSubscriber
11 ODBC データソースサーバーODBC data source server
22 MicrosoftMicrosoft Jet データベースJet database
33 OLE DB プロバイダーOLE DB provider

[ @memory_optimized=] memory_optimized[ @memory_optimized=] memory_optimized
サブスクリプションがメモリ最適化テーブルをサポートしていることを示します。Indicates that the subscription supports memory optimized tables. memory_optimizedビット,、1は true (サブスクリプションでは、メモリ最適化テーブルをサポートします)。memory_optimized is bit, where 1 equals true (the subscription supports memory optimized tables).

リターン コードの値Return Code Values

0 (成功) または 1 (失敗)0 (success) or 1 (failure)

コメントRemarks

sp_addsubscription は、スナップショット レプリケーションおよびトランザクション レプリケーションで使用します。sp_addsubscription is used in snapshot replication and transactional replication.

sp_addsubscription が固定サーバー ロール sysadmin のメンバーによってプッシュ サブスクリプションを作成するために実行されると、ディストリビューション エージェントのジョブが暗黙的に作成され、SQL Server エージェント サービス アカウントで実行されます。When sp_addsubscription is executed by a member of the sysadmin fixed server role to create a push subscription, the Distribution Agent job is implicitly created and runs under the SQL Server Agent service account. @job_login と @job_password には、sp_addpushsubscription_agent を実行し、エージェント固有の別のWindowsアカウントの資格情報を指定することをお勧めします。We recommend that you execute sp_addpushsubscription_agent and specify the credentials of a different, agent-specific Windows account for @job_login and @job_password. 詳細については、「 レプリケーション エージェント セキュリティ モデル」を参照してください。For more information, see Replication Agent Security Model.

sp_addsubscription を使用すると、ODBC および OLE DB サブスクライバーが次のパブリケーションにアクセスできなくなります。sp_addsubscription prevents ODBC and OLE DB Subscribers access to publications that:

  • は、 sp_addpublicationへの呼び出しでネイティブsync_methodを使用して作成されました。Were created with the native sync_method in the call to sp_addpublication.

  • Pre_creation_cmdパラメーターの値が 3 (truncate) のsp_addarticleストアドプロシージャを使用して、パブリケーションに追加されたアーティクルを格納します。Contain articles that were added to the publication with the sp_addarticle stored procedure that had a pre_creation_cmd parameter value of 3 (truncate).

  • Update_modeを sync tran に設定しようとしました。Attempt to set update_mode to sync tran.

  • パラメーター化されたステートメントを使用するように構成されたアーティクルを含むパブリケーション。Have an article configured to use parameterized statements.

また、パブリケーションのallow_queued_tranオプションが true に設定されている場合 (サブスクライバーで変更をキューに登録できるようになります)、アーティクル内の timestamp 列はtimestampとしてスクリプト化されます。その列に対する変更がサブスクライバーに送信されます。In addition, if a publication has the allow_queued_tran option set to true (which enables queuing of changes at the Subscriber until they can be applied at the Publisher), the timestamp column in an article is scripted out as timestamp, and changes on that column are sent to the Subscriber. サブスクライバーは、timestamp 列の値を生成して更新します。The Subscriber generates and updates the timestamp column value. ODBC または OLE DB サブスクライバーの場合、 allow_queued_tranが true に設定されているパブリケーションと、timestamp 列が含まれているアーティクルをサブスクライブしようとすると、sp_addsubscription は失敗します。For an ODBC or OLE DB Subscriber, sp_addsubscription fails if an attempt is made to subscribe to a publication that has allow_queued_tran set to true and articles with timestamp columns in it.

サブスクリプションが DTS パッケージを使用しない場合、 allow_transformable_subscriptionsに設定されているパブリケーションをサブスクライブすることはできません。If a subscription does not use a DTS package, it cannot subscribe to a publication that is set to allow_transformable_subscriptions. パブリケーションのテーブルを DTS サブスクリプションと非 DTS サブスクリプションの両方にレプリケートする必要がある場合は、サブスクリプションの種類ごとに1つずつ、2つの個別のパブリケーションを作成する必要があります。If the table from the publication needs to be replicated to both a DTS subscription and non-DTS subscription, two separate publications have to be created: one for each type of subscription.

sync_type オプション replication support onlyinitialize with backup、または initialize from lsnを選択した場合、 sp_addsubscriptionの実行後にログ リーダー エージェントを実行して、スクリプトの設定がディストリビューション データベースに書き込まれるようにする必要があります。When selecting the sync_type options replication support only, initialize with backup, or initialize from lsn, the log reader agent must run after executing sp_addsubscription, so that the set-up scripts are written to the distribution database. ログ リーダー エージェントが、 sysadmin 固定サーバー ロールのメンバーであるアカウントで実行されている必要があります。The log reader agent must be running under an account that is a member of the sysadmin fixed server role. sync_type オプションが Automaticに設定されている場合、特別なログ リーダー エージェントの操作は必要ありません。When the sync_type option is set to Automatic, no special log reader agent actions are required.

アクセス許可Permissions

sp_addsubscription を実行できるのは、固定サーバー ロール sysadmin または固定データベース ロール db_owner のメンバーだけです。Only members of the sysadmin fixed server role or db_owner fixed database role can execute sp_addsubscription. プル サブスクリプションの場合、パブリケーションのアクセス リストにログインのあるユーザーは sp_addsubscription を実行できます。For pull subscriptions, users with logins in the publication access list can execute sp_addsubscription.

Example

-- 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;
SET @publication = N'AdvWorksProductTran';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorks2012Replica';

--Add a push subscription to a transactional publication.
USE [AdventureWorks2012]
EXEC sp_addsubscription 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @destination_db = @subscriptionDB, 
  @subscription_type = N'push';

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

関連項目See Also

ssSDSFull Create a Push Subscription
SQL Server 以外のサブスクライバーのサブスクリプションの作成 Create a Subscription for a Non-SQL Server Subscriber
パブリケーションのサブスクライブ Subscribe to Publications
sp_addpushsubscription_agent (transact-sql) sp_addpushsubscription_agent (Transact-SQL)
sp_changesubstatus (transact-sql) sp_changesubstatus (Transact-SQL)
sp_dropsubscription (transact-sql) sp_dropsubscription (Transact-SQL)
sp_helpsubscription (transact-sql) sp_helpsubscription (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)System Stored Procedures (Transact-SQL)