sp_attachsubscription (Transact-SQL)
適用対象: SQL Server Azure SQL データベース
既存のサブスクリプション データベースを任意のサブスクライバーにアタッチします。 このストアド プロシージャは、 master
データベースの新しいサブスクライバーで実行されます。
重要
この機能は非推奨とされており、今後のリリースでは削除されます。 この機能は、新しい開発作業では使用しないでください。 パラメーター化されたフィルターを使用してパーティション分割されたマージ パブリケーションでは、パーティション スナップショットの新しい機能を使用することをお勧めします。この機能を使用すると、多数のサブスクリプションの初期化を簡単に実行できます。 詳しくは、「 パラメーター化されたフィルターを使用したパブリケーションのスナップショットの作成」をご覧ください。 パーティション分割されていないパブリケーションの場合は、バックアップを使用してサブスクリプションを初期化できます。 詳細については、「 スナップショットを使用しないトランザクション サブスクリプションの初期化を使用して、サブスクリプションを手動で初期化する方法について説明します。
構文
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が1
されていない場合 (Windows 認証)、エラーが表示されます。
[ @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 認証を指定します1
Windows 認証を指定します
可能な場合は、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
を実行できます。