sp_addmergepublication (Transact-SQL)

更新 : 2006 年 12 月 12 日

新しいマージ パブリケーションを作成します。このストアド プロシージャは、パブリッシャ側でパブリッシュ対象のデータベースについて実行されます。

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

構文

sp_addmergepublication [ @publication = ] 'publication' 
    [ , [ @description = ] 'description' 
    [ , [ @retention = ] retention ] 
    [ , [ @sync_mode = ] 'sync_mode' ] 
    [ , [ @allow_push = ] 'allow_push' ] 
    [ , [ @allow_pull = ] 'allow_pull' ] 
    [ , [ @allow_anonymous = ] 'allow_anonymous' ] 
    [ , [ @enabled_for_internet = ] 'enabled_for_internet' ] 
    [ , [ @centralized_conflicts = ] 'centralized_conflicts' ] 
        [ , [ @dynamic_filters = ] 'dynamic_filters' ] 
    [ , [ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder' ] 
    [ , [ @alt_snapshot_folder = ] 'alternate_snapshot_folder' ] 
        [ , [ @pre_snapshot_script = ] 'pre_snapshot_script' ] 
    [ , [ @post_snapshot_script = ] 'post_snapshot_script' ] 
    [ , [ @compress_snapshot = ] 'compress_snapshot' ] 
    [ , [ @ftp_address = ] 'ftp_address' ] 
    [ , [ @ftp_port = ] ftp_port ] 
    [ , [ @ftp_subdirectory = ] 'ftp_subdirectory' ] 
    [ , [ @ftp_login = ] 'ftp_login' ] 
    [ , [ @ftp_password = ] 'ftp_password' ] 
    [ , [ @conflict_retention = ] conflict_retention ] 
    [ , [ @keep_partition_changes = ] 'keep_partition_changes' ] 
    [ , [ @allow_subscription_copy = ] 'allow_subscription_copy' ] 
    [ , [ @allow_synctoalternate = ] 'allow_synctoalternate' ] 
    [ , [ @validate_subscriber_info = ] 'validate_subscriber_info' ] 
    [ , [ @add_to_active_directory = ] 'add_to_active_directory' ] 
    [ , [ @max_concurrent_merge = ] maximum_concurrent_merge ] 
    [ , [ @max_concurrent_dynamic_snapshots = ] max_concurrent_dynamic_snapshots ]
    [ , [ @use_partition_groups = ] 'use_partition_groups' ]
    [ , [ @publication_compatibility_level = ] 'backward_comp_level' ]
    [ , [ @replicate_ddl = ] replicate_ddl ]
    [ , [ @allow_subscriber_initiated_snapshot = ] 'allow_subscriber_initiated_snapshot' ] 
    [ , [ @allow_web_synchronization = ] 'allow_web_synchronization' ] 
    [ , [ @web_synchronization_url = ] 'web_synchronization_url' ]
    [ , [ @allow_partition_realignment = ] 'allow_partition_realignment' ]
    [ , [ @retention_period_unit = ] 'retention_period_unit' ]
    [ , [ @generation_leveling_threshold = ] generation_leveling_threshold ]
    [ , [ @automatic_reinitialization_policy = ] automatic_reinitialization_policy ]
    [ , [ @conflict_logging = ] 'conflict_logging' ]

引数

  • [ @publication=] 'publication'
    作成するマージ パブリケーションの名前です。publicationsysname であり、既定値はありません。publication はキーワード ALL であってはなりません。パブリケーションの名前は、データベース内で一意である必要があります。
  • [ @description=] 'description'
    パブリケーションの説明です。descriptionnvarchar(255) であり、既定値は NULL です。
  • [ @retention=] retention
    指定した publication への変更の保有期間を保有期間単位で指定します。retentionint で、既定の単位は 14 です。保有期間の単位は retention_period_unit で定義します。保有期間内にサブスクリプションが同期されず、受信した保留中の変更がディストリビュータ側でクリーンアップ操作によって削除された場合、サブスクリプションは有効期限切れとなり、再初期化する必要があります。最大許容保有期間は、現在の日付から 9999 年 12 月 31 日までの日数です。

    ms176103.note(ja-jp,SQL.90).gifメモ :
    マージ パブリケーションの保有期間には、異なるタイム ゾーンのサブスクライバに対応するため、24 時間の猶予期間があります。たとえば、保有期間を 1 日に設定した場合、実際の保有期間は 48 時間となります。
  • [ @sync_mode=] 'sync_mode'
    サブスクライバのパブリケーションに対する初期同期モードです。sync_modenvarchar(10) であり、次のいずれかの値をとります。

    説明

    native (既定値)

    すべてのテーブルのネイティブ モードの一括コピー プログラム出力を作成します。

    character

    すべてのテーブルのキャラクタモードの一括コピー プログラム出力を作成します。SQL Server 2005 Compact Edition、および SQL Server 以外のサブスクライバをサポートする場合に必要です。

  • [ @allow_push=] 'allow_push'
    特定のパブリケーションに対して、プッシュ サブスクリプションを作成できるかどうかを指定します。allow_pushnvarchar(5) であり、既定値は TRUE です。TRUE の場合、パブリケーションに対してプッシュ サブスクリプションを作成できます。
  • [ @allow_pull=] 'allow_pull'
    特定のパブリケーションに対して、プル サブスクリプションを作成できるかどうかを指定します。allow_pullnvarchar(5) であり、既定値は TRUE です。TRUE の場合、パブリケーションに対してプル サブスクリプションを作成できます。SQL Server 2005 Compact Edition サブスクライバをサポートするには、この値を TRUE に指定する必要があります。
  • [ @allow_anonymous=] 'allow_anonymous'
    特定のパブリケーションに対して、匿名サブスクリプションを作成できるかどうかを指定します。allow_anonymousnvarchar(5) であり、既定値は TRUE です。TRUE の場合、パブリケーションに対して匿名サブスクリプションを作成できます。SQL Server 2005 Compact Edition **サブスクライバをサポートするには、この値を **TRUE****に指定する必要があります。
  • [ @enabled_for_internet=] 'enabled_for_internet'
    パブリケーションをインターネット対応にするかどうかを指定し、サブスクライバへのスナップショット ファイルの転送にファイル転送プロトコル (FTP) を使用できるかどうかを決定します。enabled_for_internetnvarchar(5) であり、既定値は FALSE です。TRUE の場合、パブリケーションの同期ファイルは、C:\Program Files\Microsoft SQL Server\MSSQL\MSSQL.x\Repldata\Ftp ディレクトリに格納されます。ユーザーは Ftp ディレクトリを作成する必要があります。FALSE を指定した場合、パブリケーションはインターネット アクセスに対応しません。
  • [ @centralized_conflicts = ] 'centralized_conflicts'
    このパラメータは、スクリプトの下位互換性を確保するために用意されているものであり、推奨されません。競合レコードが格納されている場所を指定するには、conflict_logging を使用します。
  • [ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder'
    スナップショット ファイルを既定のフォルダに格納するかどうかを指定します。snapshot_in_default_foldernvarchar(5) であり、既定値は TRUE です。TRUE を指定した場合、スナップショット ファイルは既定のフォルダに格納されます。FALSE を指定した場合、スナップショット ファイルは alternate_snapshot_folder で指定された代替位置に格納されます。他のサーバー、ネットワーク ドライブ、または CD-ROM やリムーバブル ディスクなどのリムーバブル メディアに代替位置を設定できます。また、スナップショット ファイルは、後でサブスクライバにより取得するために、ファイル転送プロトコル (FTP) サイトに保存してもかまいません。このパラメータを TRUE に設定したうえで、alt_snapshot_folder パラメータで代替位置を指定することもできます。このパラメータの組み合わせを指定すると、スナップショット ファイルは、既定のフォルダと代替位置の両方に格納されます。
  • [ @alt_snapshot_folder = ] 'alternate_snapshot_folder'
    スナップショットの代替フォルダの場所を指定します。alternate_snapshot_foldernvarchar(255) であり、既定値は NULL です。
  • [ @pre_snapshot_script = ] 'pre_snapshot_script'
    .sql ファイルの場所を指すポインタを指定します。pre_snapshot_scriptnvarchar(255) であり、既定値は NULL です。マージ エージェントは、サブスクライバでスナップショットを適用するときに、レプリケートされたオブジェクト スクリプトより前に、プリスナップショット スクリプトを実行します。このスクリプトは、マージ エージェントがサブスクリプション データベースに接続するときにセキュリティ コンテキスト内で実行されます。プリスナップショット スクリプトは SQL Server 2005 Compact Edition サブスクライバ上では実行されません。
  • [ @post_snapshot_script = ] 'post_snapshot_script'
    .sql ファイルの場所を指すポインタを指定します。post_snapshot_scriptnvarchar(255) であり、既定値は NULL です。最初の同期のときに、マージ エージェントは、他のすべてのレプリケートされたオブジェクト スクリプトとデータが適用された後に、ポストスナップショット スクリプトを実行します。このスクリプトは、マージ エージェントがサブスクリプション データベースに接続するときにセキュリティ コンテキスト内で実行されます。ポストスナップショット スクリプトは SQL Server 2005 Compact Edition サブスクライバ上では実行されません。
  • [ @compress_snapshot = ] 'compress_snapshot'
    @alt_snapshot_folder の位置に書き込まれるスナップショットを Microsoft CAB 形式で圧縮するかどうかを指定します。compress_snapshotnvarchar(5) であり、既定値は FALSE です。FALSE を指定した場合、スナップショットは圧縮されません。TRUE を指定した場合、スナップショットは圧縮されます。2 GB より大きいスナップショット ファイルは圧縮できません。圧縮されたスナップショット ファイルは、マージ エージェントが実行されている場所で解凍されます。一般にプル サブスクリプションでは、サブスクライバでファイルが解凍されるように、圧縮されたスナップショットが使用されます。既定のフォルダ内のスナップショットは、圧縮できません。SQL Server 2005 Compact Edition サブスクライバをサポートするには、この値を **FALSE****に指定する必要があります。
  • [ @ftp_address = ] 'ftp_address'
    ディストリビュータの FTP サービス用ネットワーク アドレスです。ftp_addresssysname であり、既定値は NULL です。サブスクライバのマージ エージェントが検索するパブリケーション スナップショット ファイルの場所を指定します。このプロパティは、パブリケーションごとに格納されるため、個々のパブリケーションが別々の ftp_address を持つことができます。パブリケーションは、FTP を利用したスナップショットの配布をサポートしている必要があります。
  • [ @ftp_port= ] ftp_port
    ディストリビュータ用の FTP サービスのポート番号です。ftp_portint であり、既定値は 21 です。サブスクライバのマージ エージェントが検索するパブリケーション スナップショット ファイルの場所を指定します。このプロパティは、パブリケーションごとに格納されるため、個々のパブリケーションが独自の ftp_port を持つことができます。
  • [ @ftp_subdirectory = ] 'ftp_subdirectory'
    パブリケーションが FTP を利用したスナップショットの配布をサポートしている場合に、サブスクライバのマージ エージェントがスナップショット ファイルを取得できる場所を指定します。ftp_subdirectorynvarchar(255) 型であり、既定値は NULL です。このプロパティはパブリケーションごとに格納されるため、個々のパブリケーションは、独自の ftp_subdirctory を持つことも、サブディレクトリを持たないようにすることもできます。NULL 値は、サブディレクトリを持たないことを示します。

    パラメータ化されたフィルタを使用してパブリケーションのスナップショットを事前に生成する場合、各サブスクライバのパーティションのデータ スナップショットはそれぞれのフォルダに入っている必要があります。FTP を使用する事前生成済みのスナップショットのディレクトリ構造は、次の構造に従っている必要があります。

    alternate_snapshot_folder\ftp\publisher_publicationDB_publication\partitionID.

    ms176103.note(ja-jp,SQL.90).gifメモ :
    上記の斜体の値は、パブリケーションおよびサブスクライバ パーティションの詳細によって異なります。
  • [ @ftp_login = ] 'ftp_login'
    FTP サービスへの接続に使用するユーザー名です。ftp_loginsysname であり、既定値は 'anonymous' です。
  • [ @ftp_password = ] 'ftp_password'
    FTP サービスへの接続に使用するユーザー パスワードです。ftp_passwordsysname であり、既定値は NULL です。

    ms176103.security(ja-jp,SQL.90).gifセキュリティ メモ :
    空白のパスワードは使用しないでください。強力なパスワードを使用してください。
  • [ @conflict_retention = ] conflict_retention
    競合を保有する保有期間を日数で指定します。conflict_retentionint であり、既定値は、競合する行が競合するテーブルから削除される日の 14 日前です。
  • [ @keep_partition_changes = ] 'keep_partition_changes'
    事前計算済みパーティションを使用できない場合に、パーティションの変更の最適化を有効にするかどうかを指定します。keep_partition_changesnvarchar(5) であり、既定値は TRUE です。FALSE を指定すると、パーティションの変更は最適化されず、事前計算済みパーティションを使用しない場合、すべてのサブスクライバに送信されたパーティションは、パーティションのデータが変更されるときに検証されます。TRUE を指定した場合、パーティションの変更が最適化されます。変更されたパーティションにある行を持つサブスクライバだけが対象となります。事前計算済みパーティションを使用する場合、use_partition_groupstrue に、keep_partition_changesfalse に設定します。詳細については、「事前計算済みパーティションによるパラメータ化されたフィルタのパフォーマンス最適化」を参照してください。

    ms176103.note(ja-jp,SQL.90).gifメモ :
    keep_partition_changes の値を TRUE にする場合は、スナップショット エージェント パラメータの -MaxNetworkOptimization の値を 1 に設定します。このパラメータの詳細については、「レプリケーション スナップショット エージェント」を参照してください。エージェント パラメータの設定については、「レプリケーション エージェントの管理」を参照してください。
  • [ @allow_subscription_copy= ] 'allow_subscription_copy'
    このパブリケーションにサブスクライブするサブスクリプション データベースをコピーする機能を有効または無効にします。allow_subscription_copynvarchar(5) であり、既定値は FALSE です。コピーされるサブスクリプション データベースのサイズは 2 ギガバイト (GB) 未満でなければなりません。
  • [ @allow_synctoalternate = ] 'allow_synctoalternate'
    代替同期パートナーがこのパブリッシャと同期する機能を有効にします。allow_synctoalternate は nvarchar(5) であり、既定値は FALSE です。代替同期パートナーは SQL Server 2005 Compact Edition サブスクライバに対してはサポートされません。
  • [ @validate_subscriber_info = ] 'validate_subscriber_info'
    パラメータ化された行フィルタを使用する場合、パブリッシュされたデータのサブスクライバ パーティションを定義するのに使用する関数を一覧表示します。validate_subscriber_infonvarchar(500) であり、既定値は NULL です。この情報は、マージ エージェントがサブスクライバのパーティションを検証するときに使用されます。たとえば、パラメータ化された行フィルタで SUSER_SNAME (Transact-SQL) が使用されている場合、パラメータは @validate_subscriber_info=N'SUSER_SNAME()' である必要があります。

    ms176103.note(ja-jp,SQL.90).gifメモ :
    このパラメータは指定しないで、代わりに SQL Server がフィルタ選択条件を自動的に決定できるようにしてください。
  • [ @add_to_active_directory = ] 'add_to_active_directory'
    このパラメータは、スクリプトの下位互換性を確保するために用意されているものであり、推奨されません。Microsoft Active Directory にパブリケーション情報を追加することはできません。
  • [ @max_concurrent_merge = ] maximum_concurrent_merge
    同時に実行できるマージ処理の最大数です。maximum_concurrent_mergeint であり、既定値は 0 です。このプロパティの値が 0 の場合、どの時点でも、同時に実行できるマージ処理数に制限はありません。このプロパティでは、マージ パブリケーションに対して同時に実行できる同時マージ処理の数を制限します。同時にスケジュールに組み込まれているマージ処理の数が、指定された実行可能な数より大きい場合、余分なジョブは待ち行列に挿入され、現在実行されているマージ処理が終わるまで待機状態に置かれます。
  • [ @max_concurrent_dynamic_snapshots =] max_concurrent_dynamic_snapshots
    サブスクライバ パーティションのフィルタ選択されたデータ スナップショットを生成するために、同時に実行できるスナップショット エージェントの最大セッション数です。maximum_concurrent_dynamic_snapshotsint であり、既定値は 0 です。0 を指定した場合、スナップショット セッションの数に制限がなくなります。同時にスケジュールに組み込まれているスナップショット処理の数が、指定された実行可能な数より大きい場合、余分なジョブは待ち行列に挿入され、現在実行されているスナップショット処理が終わるまで待機状態に置かれます。
  • [ @use_partition_groups= ] 'use_partition_groups'
    事前計算済みパーティションを使用して、同期処理を最適化することを指定します。use_partition_groupsnvarchar(5) であり、次のいずれかの値をとります。

    説明

    true

    パブリケーションは事前計算済みパーティションを使用します。

    false

    パブリケーションは事前計算済みパーティションを使用しません。

    NULL (既定値)

    システムがパーティション分割ストラテジを決定します。

    既定では事前計算済みパーティションを使用します。事前計算済みパーティションを使用しないようにするには、use_partition_groupsfalse に設定する必要があります。NULL に指定すると、システムが事前計算済みパーティションを使用するかどうかを決定します。事前計算済みパーティションが使用できない場合、この値は実質的に false となり、エラーは生成されません。そのような場合、keep_partition_changestrue に設定すると、ある程度最適化することができます。詳細については、「パラメータ化された行フィルタ」および「事前計算済みパーティションによるパラメータ化されたフィルタのパフォーマンス最適化」を参照してください。

  • [ @publication_compatibility_level= ] backward_comp_level
    パブリケーションの下位互換性を示します。backward_comp_levelnvarchar(6) であり、次のいずれかの値をとります。

    バージョン

    70RTM

    Microsoft SQL Server 7.0

    70SP1

    SQL Server 7.0 Service Pack 1

    70SP2

    SQL Server 7.0 Service Pack 2

    70SP3

    SQL Server 7.0 Service Pack 3

    70SP4

    SQL Server 7.0 Service Pack 4

    80RTM

    Microsoft SQL Server 2000

    80SP1

    SQL Server 2000 Service Pack 1

    80SP3 (既定)

    SQL Server 2000 Service Pack 3

    90RTM

    Microsoft SQL Server 2005

  • [ @replicate_ddl= ] replicate_ddl
    パブリケーションでスキーマ レプリケーションをサポートするかどうかを指定します。replicate_ddlint であり、既定値は 1 です。1 は、パブリッシャで実行されるデータ定義言語 (DDL) ステートメントがレプリケートされることを示し、0 は、DDL ステートメントがレプリケートされないことを示します。詳細については、「パブリケーション データベースでのスキーマの変更」を参照してください。
  • [ @allow_subscriber_initiated_snapshot= ] 'allow_subscriber_initiated_snapshot'
    このパブリケーションのサブスクライバが、データ パーティションのフィルタ選択されたスナップショットを生成するスナップショット処理を開始できるかどうかを指定します。allow_subscriber_initiated_snapshotnvarchar(5) であり、既定値は FALSE です。true を指定すると、サブスクライバはスナップショット処理を開始できます。
  • [ @allow_web_synchronization = ] 'allow_web_synchronization'
    Web 同期に対してパブリケーションを有効にするかどうかを指定します。allow_web_synchronizationnvarchar(5) であり、既定値は FALSE です。true に指定すると、HTTPS 経由でこのパブリケーションへのサブスクリプションを同期することができます。詳細については、「マージ レプリケーションの Web 同期」を参照してください。SQL Server 2005 Compact Edition **サブスクライバをサポートするには、この値を **TRUE****に指定する必要があります。
  • [ @web_synchronization_url= ] 'web_synchronization_url'
    Web 同期に使用するインターネット URL の既定値を指定します。 web_synchronization_urlnvarchar(500) であり、既定値は NULL です。sp_addmergepullsubscription_agent の実行時にインターネット URL が明示的に設定されていない場合の既定のインターネット URL を定義します。
  • [ @allow_partition_realignment = ] 'allow_partition_realignment']
    パブリッシャで、行の変更によりパーティションに変更があった場合、削除をサブスクライバに送信するかどうかを決定します。allow_partition_realignmentnvarchar(5) であり、既定値は TRUE です。true の場合、サブスクライバの、パーティションの一部ではなくなったデータの削除によるパーティションの変更結果を反映するために、削除がサブスクライバに送信されます。false を指定すると、データはサブスクライバでは古いパーティションのまま残され、パブリッシャ側のこのデータに対する変更はこのサブスクライバにはレプリケートされませんが、サブスクライバ側で行われた変更はパブリッシャにレプリケートされます。履歴を参照する目的でデータにアクセスできるようにするために、サブスクリプションで古いパーティションのデータを残しておく場合に、allow_partition_realignmentfalse に設定します。

    ms176103.note(ja-jp,SQL.90).gifメモ :
    allow_partition_realignmentfalse に設定した結果サブスクライバ側に残されるデータは、読み取り専用として扱われるべきですが、レプリケーション システムによって強制されるわけではありません。
  • [ @retention_period_unit= ] 'retention_period_unit'
    retention で設定された保有期間の単位を指定します。retention_period_unitnvarchar(10) であり、次のいずれかの値をとります。

    バージョン

    day (既定)

    保有期間を日単位で指定します。

    week

    保有期間を週単位で指定します。

    month

    保有期間を月単位で指定します。

    year

    保有期間を年単位で指定します。

  • [ @generation_leveling_threshold = ] generation_leveling_threshold
    1 回の生成に含まれる変更の数です。生成とは、パブリッシャまたはサブスクライバに配信される変更の集まりです。generation_leveling_threshold のデータ型は int で、既定値は 1000 です。詳細については、「マージ レプリケーションで変更を追跡および列挙する方法」を参照してください。
  • [ @automatic_reinitialization_policy = ] automatic_reinitialization_policy
    @force_reinit_subscription1 の値が指定されていて、パブリケーションへの変更により必要な自動再初期化を実行する前に、サブスクライバから変更をアップロードするかどうかを指定します。automatic_reinitialization_policy は bit であり、既定値は 0 です。1 を指定すると、自動再初期化が発生する前に変更がサブスクライバからアップロードされます。

    ms176103.note(ja-jp,SQL.90).gif重要 :
    パラメータ化フィルタを追加、削除、変更する場合は、再初期化の際、サブスクライバで保留中の変更をパブリッシャにアップロードできません。保留中の変更をアップロードしたい場合は、フィルタを変更する前にすべてのサブスクリプションを同期してください。
  • [ @conflict_logging = ] 'conflict_logging'
    競合レコードの保存先を指定します。conflict_loggingnvarchar(15) であり、次のいずれかの値をとります。

    説明

    publisher

    競合レコードはパブリッシャに保存されます。

    subscriber

    競合レコードは、競合の原因となったサブスクライバに保存されます。SQL Server 2005 Compact Edition サブスクライバではサポートされていません。

    both

    競合レコードは、パブリッシャとサブスクライバの両方に保存されます。

    NULL (既定値)

    他のすべての場合、backward_comp_level の値が 90RTM で保存先が publisher に設定されていると、レプリケーションは自動的に conflict_loggingboth に設定します。

リターン コードの値

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

解説

sp_addmergepublication はマージ レプリケーションで使用します。

@add_to_active_directory パラメータを使用して Active Directory に対してパブリケーション オブジェクトを一覧表示するには、Active Directory 内で SQL Server オブジェクトをあらかじめ作成しておく必要があります。

同じデータベース オブジェクトをパブリッシュする複数のパブリケーションが存在する場合、replicate_ddl の値が 1 のパブリケーションのみが ALTER TABLE、ALTER VIEW、ALTER PROCEDURE、ALTER FUNCTION、および ALTER TRIGGER DDL の各ステートメントをレプリケートします。ただし、ALTER TABLE DROP COLUMN DDL ステートメントは、削除された列をパブリッシュしているすべてのパブリケーションによってレプリケートされます。

SQL Server 2005 Compact Edition サブスクライバの場合、alternate_snapshot_folder の値は、snapshot_in_default_folder の値が false の場合のみ使用されます。

パブリケーションで DDL レプリケーションが有効な場合 (replicate_ddl**=1**)、レプリケートされない DDL の変更をパブリケーションに加えるには、sp_changemergepublication を先に実行して replicate_ddl0 に設定する必要があります。レプリケートされない DDL ステートメントが実行された後で、sp_changemergepublication をもう一度実行して DDL レプリケーションを on に戻しておくこともできます。

権限

sp_addmergepublication を実行できるのは、固定サーバー ロール sysadmin または固定データベース ロール db_owner のメンバだけです。

使用例

-- To avoid storing the login and password in the script file, the value 
-- is passed into SQLCMD as a scripting variable. For information about 
-- how to use scripting variables on the command line and in SQL Server
-- Management Studio, see the "Executing Replication Scripts" section in
-- the topic "Programming Replication Using System Stored Procedures".

--Declarations for adding a merge publication
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks'; 
SET @publication = N'AdvWorksSalesOrdersMerge'; 
SET @login = $(Login);
SET @password = $(Password);

-- Enable merge replication on the publication database, using defaults.
USE master
EXEC sp_replicationdboption 
  @dbname=@publicationDB, 
  @optname=N'merge publish',
  @value = N'true' 

-- Create a new merge publication, explicitly setting the defaults. 
USE [AdventureWorks]
EXEC sp_addmergepublication 
-- These parameters are optional.
  @publication = @publication,
  -- optional parameters 
  @description = N'Merge publication of AdventureWorks.',
  @publication_compatibility_level  = N'90RTM';

-- Create a new snapshot job for the publication.
EXEC sp_addpublication_snapshot 
  @publication = @publication, 
  @job_login = @login, 
  @job_password = @password;
GO

参照

関連項目

sp_changemergepublication (Transact-SQL)
sp_dropmergepublication (Transact-SQL)
sp_helpmergepublication (Transact-SQL)
レプリケーション ストアド プロシージャ (Transact-SQL)

その他の技術情報

パブリケーションを作成する方法 (レプリケーション Transact-SQL プログラミング)
データとデータベース オブジェクトのパブリッシュ

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 12 月 12 日

追加内容 :
  • スナップショット エージェント パラメータ -MaxNetworkOptimization の使用方法に関する情報を追加。
  • generation_leveling_threshold パラメータに関する情報を追加。