次の方法で共有


sp_copysubscription (Transact-SQL)

重要な注意事項重要

これはアタッチ可能なサブスクリプション機能ですが、使用は推奨されず、将来のリリースで削除されます。新しい開発作業では使用しないでください。パラメータ化されたフィルタを使用してパーティション分割されたマージ パブリケーションでは、パーティション スナップショットの新しい機能を使用することをお勧めします。この新機能を使用すると、多数のサブスクリプションの初期化を簡単に実行できます。詳細については、「パラメータ化されたフィルタを使用したマージ パブリケーションのスナップショット」を参照してください。パーティション分割されていないパブリケーションでは、バックアップを使用してサブスクリプションを初期化できます。詳細については、「スナップショットを使用しないマージ サブスクリプションの初期化」および「スナップショットを使用しないトランザクション サブスクリプションの初期化」を参照してください。

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

トピック リンク アイコンTransact-SQL 構文表記規則

構文

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

引数

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

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

  • [ @overwrite_existing_file=] 'overwrite_existing_file'
    @filename で指定された名前と同じ名前の既存のファイルを上書きするかどうかを表す、ブール値のフラグを指定します。この引数は省略可能です。overwrite_existing_fileのデータ型は bit で、既定値は 0 です。1 の場合は、@filename で指定される名前のファイルが既に存在する場合、これを上書きします。0 の場合は、既存のファイルがあるとこのストアド プロシージャは失敗し、ファイルは上書きされません。

戻り値

成功した場合は 0 を、失敗した場合は 1 をそれぞれ返します。

説明

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

コピーされるサブスクリプション データベースのサイズは 2 ギガバイト (GB) 未満でなければなりません。

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

権限

sp_copysubscription を実行できるのは、固定サーバー ロール sysadmin のメンバだけです。