次の方法で共有


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 固定サーバー ロールのメンバだけです。