sp_copysubscription (Transact-SQL)

適用対象: SQL ServerAzure SQL Managed Instance

重要

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

プル サブスクリプションはあるがプッシュ サブスクリプションはないサブスクリプション データベースをコピーします。 単一ファイルのデータベースのみをコピーできます。 このストアド プロシージャは、サブスクリプション データベースのサブスクライバーで実行されます。

Transact-SQL 構文表記規則

構文

  
sp_copysubscription [ @filename = ] 'file_name'  
    [ , [ @temp_dir = ] 'temp_dir' ]  
    [ , [ @overwrite_existing_file = ] overwrite_existing_file]  

引数

[ @filename = ] 'file_name' データ ファイル (.mdf) のコピーを保存する完全なパス (ファイル名を含む) を指定する文字列です。 ファイル名nvarchar(260)で、既定値はありません。

[ @temp_dir = ] 'temp_dir' 一時ファイルを含むディレクトリの名前を指定します。 temp_dirnvarchar(260)で、既定値は NULL です。 NULL の場合、Microsoft SQL Serverの既定のデータ ディレクトリが使用されます。 このディレクトリは、すべてのサブスクライバー データベース ファイルを合わせたファイル サイズを格納できるだけの領域を備えている必要があります。

[ @overwrite_existing_file = ] 'overwrite_existing_file' @filename で指定された同じ名前の既存のファイルを上書きするかどうかを指定するオプションのブール型フラグです。 overwrite_existing_fileビットであり、既定値は 0 です1 の場合、@filenameで指定されたファイルが存在する場合は上書きされます。 0 の場合、ファイルが存在し、ファイルが上書きされない場合、ストアド プロシージャは失敗します。

リターン コードの値

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

解説

sp_copysubscription は、サブスクライバーでスナップショットを適用する代わりに、サブスクリプション データベースをファイルにコピーするために、すべての種類のレプリケーションで使用されます。 プル サブスクリプションのみをサポートするようにデータベースを構成する必要があります。 適切なアクセス許可を持つユーザーは、サブスクリプション データベースのコピーを作成し、サブスクリプション ファイル (.msf) を電子メールで送信したり、コピーしたり、別のサブスクライバーに転送したりして、サブスクリプションとしてアタッチできます。

コピーするサブスクリプション データベースのサイズは、2 ギガバイト (GB) 未満である必要があります。

sp_copysubscription は、クライアント サブスクリプションを持つデータベースでのみサポートされ、データベースにサーバー サブスクリプションがある場合は実行できません。

アクセス許可

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

参照

スナップショット フォルダーの代替位置
システム ストアド プロシージャ (Transact-SQL)