sp_attachsubscription (Transact-SQL)

既存のサブスクリプション データベースを任意のサブスクライバーにアタッチします。 このストアド プロシージャは、master データベース上の新しいサブスクライバー側で実行されます。

重要な注意事項重要

この機能は今後のリリースで削除される予定であり、使用は推奨されません。 新しい開発作業では使用しないでください。 パラメーター化されたフィルターを使用してパーティション分割されたマージ パブリケーションでは、パーティション スナップショットの新しい機能を使用することをお勧めします。この機能を使用すると、多数のサブスクリプションの初期化を簡単に実行できます。 詳細については、「パラメーター化されたフィルターを使用したマージ パブリケーションのスナップショット」を参照してください。 パーティション分割されていないパブリケーションでは、バックアップを使用してサブスクリプションを初期化できます。 詳細については、「スナップショットを使用しないトランザクション サブスクリプションの初期化」を参照してください。

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

構文

sp_attachsubscription [ @dbname = ] 'dbname' 
        , [ @filename = ] 'filename'
    [ , [ @subscriber_security_mode = ] 'subscriber_security_mode' ]
    [ , [ @subscriber_login = ] 'subscriber_login' ]
    [ , [ @subscriber_password = ] 'subscriber_password' ]
    [ , [ @distributor_security_mode = ] distributor_security_mode ] 
    [ , [ @distributor_login = ] 'distributor_login' ] 
    [ , [ @distributor_password = ] 'distributor_password' ] 
    [ , [ @publisher_security_mode = ] publisher_security_mode ] 
    [ , [ @publisher_login = ] 'publisher_login' ] 
    [ , [ @publisher_password = ] 'publisher_password' ] 
    [ , [ @job_login = ] 'job_login' ] 
    [ , [ @job_password = ] 'job_password' ] 
    [ , [ @db_master_key_password = ] 'db_master_key_password' ]

引数

  • [ @dbname= ] 'dbname'
    対象となるサブスクリプション データベースの名前を文字列で指定します。 dbname のデータ型は sysname で、既定値はありません。

  • [ @filename= ] 'filename'
    プライマリ MDF (master データ ファイル) の名前と物理位置を指定します。 filename のデータ型は nvarchar(260) で、既定値はありません。

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

    注意

    Windows 認証を使用する必要があります。 subscriber_security_mode が 1 (Windows 認証) ではない場合、エラーが返されます。

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

    注意

    このパラメーターは、スクリプトの旧バージョンとの互換性を維持するために用意されているもので、使用はお勧めしません。 subscriber_security_mode に 1 を指定しないで、subscriber_login を指定すると、エラーが返されます。

  • [ @subscriber_password= ] 'subscriber_password'
    サブスクライバーのパスワードです。 subscriber_password のデータ型は sysname で、既定値は NULL です。

    注意

    このパラメーターは、スクリプトの旧バージョンとの互換性を維持するために用意されているもので、使用はお勧めしません。 subscriber_security_mode に 1 を指定しないで、subscriber_password を指定すると、エラーが返されます。

  • [ @distributor_security_mode= ] distributor_security_mode
    ディストリビューターへ接続して同期するときに使用するセキュリティ モードを指定します。 distributor_security_mode のデータ型は int で、既定値は 0 です。 0 は SQL Server 認証を表します。 1 は Windows 認証を表します。 可能な場合は、Windows 認証を使用します。

  • [ @distributor_login= ] 'distributor_login'
    ディストリビューターへ接続して同期するときに使用するディストリビューター ログインを指定します。 distributor_security_mode を 0 に設定した場合は、distributor_login を指定する必要があります。 distributor_login のデータ型は sysname で、既定値は NULL です。

  • [ @distributor_password= ] 'distributor_password'
    ディストリビューターのパスワードです。 distributor_security_mode を 0 に設定した場合は、distributor_password を指定する必要があります。 distributor_password のデータ型は sysname で、既定値は NULL です。 distributor_password の値は Unicode 文字で 120 文字未満にする必要があります。

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

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

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

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

  • [ @publisher_password= ] 'publisher_password'
    パブリッシャーへの接続時に使用するパスワードを指定します。 publisher_password のデータ型は sysname で、既定値は NULL です。 publisher_password の値は Unicode 文字で 120 文字未満にする必要があります。

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

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

  • [ @job_login= ] 'job_login'
    エージェントを実行する Windows アカウント用のログインを指定します。 job_login のデータ型は nvarchar(257) で、既定値はありません。 この Windows アカウントはディストリビューターへのエージェント接続で常に使用されます。

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

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

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

  • [ @db_master_key_password= ] 'db_master_key_password'
    ユーザー定義データベースのマスター キーのパスワードを指定します。 db_master_key_password のデータ型は nvarchar(524) で、既定値は NULL です。 db_master_key_password を指定しない場合は、既存のデータベースのマスター キーが削除され再作成されます。

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

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

戻り値

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

説明

sp_attachsubscription は、スナップショット レプリケーション、トランザクション レプリケーション、マージ レプリケーションで使用します。

パブリケーション保有期間が過ぎている場合、サブスクリプションをパブリケーションにアタッチすることはできません。 保有期間を過ぎたサブスクリプションを指定した場合は、サブスクリプションがアタッチされたとき、または初めて同期したときにエラーが発生します。 パブリケーション保有期間が 0 (無期限) のパブリケーションは無視されます。

権限

sp_attachsubscription を実行できるのは、sysadmin 固定サーバー ロールのメンバーだけです。

関連項目

参照

システム ストアド プロシージャ (Transact-SQL)