次の方法で共有


sp_attachsubscription (Transact-SQL)

適用対象: SQL Server Azure SQL データベース

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

重要

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

Transact-SQL 構文表記規則

構文

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

引数

[ @dbname = ] N'dbname'

移行先サブスクリプション データベースの名前を指定します。 @dbnamesysname で、既定値はありません。

[ @filename = ] N'filename'

プライマリ データ ファイルの名前と物理的な場所 (.mdf)。 @filenamenvarchar(260)で、既定値はありません。

[ @subscriber_security_mode = ] subscriber_security_mode

同期時にサブスクライバーに接続するときに使用するサブスクライバーのセキュリティ モード。 @subscriber_security_modeint で、既定値は NULL です。

Note

Windows 認証を使用する必要があります。 @subscriber_security_mode1されていない場合 (Windows 認証)、エラーが表示されます。

[ @subscriber_login = ] N'subscriber_login'

同期時にサブスクライバーに接続するときに使用するサブスクライバー ログイン名。 @subscriber_loginsysname で、既定値は NULL です。

Note

このパラメーターは非推奨であり、スクリプトの下位互換性のために保持されます。 @subscriber_security_mode1されず、@subscriber_loginが指定されている場合は、エラーが発生します。

[ @subscriber_password = ] N'subscriber_password'

サブスクライバーのパスワード。 @subscriber_passwordsysname で、既定値は NULL です。

Note

このパラメーターは非推奨であり、スクリプトの下位互換性のために保持されます。 @subscriber_security_mode1されず、@subscriber_passwordが指定されている場合は、エラーが発生します。

[ @distributor_security_mode = ] distributor_security_mode

同期時にディストリビューターに接続するときに使用するセキュリティ モード。 @distributor_security_modeint で、既定値は 1 です。

  • 0 は SQL Server 認証を指定します
  • 1Windows 認証を指定します

可能な場合は、Windows 認証を使用します。

[ @distributor_login = ] N'distributor_login'

同期時にディストリビューターに接続するときに使用するディストリビューター ログイン。 @distributor_loginsysname で、既定値は NULL です。 @distributor_security_mode0 に設定されている場合は、@distributor_loginが必要です。

[ @distributor_password = ] N'distributor_password'

ディストリビューターのパスワード。 @distributor_passwordsysname で、既定値は NULL です。 @distributor_security_mode0 に設定されている場合は、@distributor_passwordが必要です。 @distributor_passwordの値は、120 Unicode 文字より短くする必要があります。

重要

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

[ @publisher_security_mode = ] publisher_security_mode

同期時にパブリッシャーに接続するときに使用するセキュリティ モード。 @publisher_security_modeint で、既定値は 1 です。

  • 0場合は、SQL Server 認証を指定します。
  • 1場合は、Windows 認証を指定します。 可能な場合は、Windows 認証を使用します。

[ @publisher_login = ] N'publisher_login'

同期時にパブリッシャーに接続するときに使用するログイン。 @publisher_loginsysname で、既定値は NULL です。

[ @publisher_password = ] N'publisher_password'

パブリッシャーに接続するときに使用するパスワード。 @publisher_passwordsysname で、既定値は NULL です。 @publisher_passwordの値は、120 Unicode 文字より短くする必要があります。

重要

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

[ @job_login = ] N'job_login'

エージェントが実行される Windows アカウントのログイン。 @job_loginnvarchar(257)で、既定値はありません。 この Windows アカウントは、ディストリビューターへのエージェント接続に常に使用されます。

[ @job_password = ] N'job_password'

エージェントが実行される Windows アカウントのパスワード。 @job_passwordsysname で、既定値は NULL です。 job_passwordの値は、120 Unicode 文字より短くする必要があります。

重要

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

[ @db_master_key_password = ] N'db_master_key_password'

ユーザー定義データベース マスター キー (DMK) のパスワード。 @db_master_key_passwordnvarchar(524) で、既定値は NULL です。 @db_master_key_password指定されていない場合は、既存の DMK が削除され、再作成されます。

重要

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

リターン コードの値

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

解説

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

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

アクセス許可

sysadmin固定サーバー ロールのメンバーのみがsp_attachsubscriptionを実行できます。