sp_attachsubscription (Transact-SQL)
適用対象:SQL ServerAzure SQL Database
既存のサブスクリプション データベースを任意のサブスクライバーにアタッチします。 このストアド プロシージャは、データベースの新しいサブスクライバーで 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が (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 認証を指定します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
できます。
関連するコンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示