sp_attachsubscription (Transact-SQL)

適用対象:SQL ServerAzure SQL Database

既存のサブスクリプション データベースを任意のサブスクライバーにアタッチします。 このストアド プロシージャは、データベースの新しいサブスクライバーで 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'

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

[ @filename = ] N'filename'

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

[ @subscriber_security_mode = ] subscriber_security_mode

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

Note

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

[ @subscriber_login = ] N'subscriber_login'

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

Note

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

[ @subscriber_password = ] N'subscriber_password'

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

Note

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

[ @distributor_security_mode = ] distributor_security_mode

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

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

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

[ @distributor_login = ] N'distributor_login'

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

[ @distributor_password = ] N'distributor_password'

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

重要

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

[ @publisher_security_mode = ] publisher_security_mode

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

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

[ @publisher_login = ] N'publisher_login'

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

[ @publisher_password = ] N'publisher_password'

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

重要

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

[ @job_login = ] N'job_login'

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

[ @job_password = ] N'job_password'

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

重要

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

[ @db_master_key_password = ] N'db_master_key_password'

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

重要

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

リターン コードの値

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

解説

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

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

アクセス許可

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