sp_addpublication (Transact-SQL)

更新 : 2006 年 12 月 12 日

スナップショット パブリケーションまたはトランザクション パブリケーションを作成します。このストアド プロシージャは、パブリッシャ側のパブリケーション データベースで実行します。

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

構文

sp_addpublication [ @publication = ] 'publication'
    [ , [ @taskid = ] tasked ]
    [ , [ @restricted = ] 'restricted' ]
    [ , [ @sync_method = ] 'sync_method' ]
    [ , [ @repl_freq = ] 'repl_freq' ]
    [ , [ @description = ] 'description' ]
    [ , [ @status = ] 'status' ]
    [ , [ @independent_agent = ] 'independent_agent' ]
    [ , [ @immediate_sync = ] 'immediate_sync' ]
    [ , [ @enabled_for_internet = ] 'enabled_for_internet' ]
    [ , [ @allow_push = ] 'allow_push'
    [ , [ @allow_pull = ] 'allow_pull' ]
    [ , [ @allow_anonymous = ] 'allow_anonymous' ]
    [ , [ @allow_sync_tran = ] 'allow_sync_tran' ]
    [ , [ @autogen_sync_procs = ] 'autogen_sync_procs' ]
    [ , [ @retention = ] retention ]
    [ , [ @allow_queued_tran= ] 'allow_queued_updating' ]
        [ , [ @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' ]
    [ , [ @allow_dts = ] 'allow_dts' ]
    [ , [ @allow_subscription_copy = ] 'allow_subscription_copy' ]
    [ , [ @conflict_policy = ] 'conflict_policy' ]
    [ , [ @centralized_conflicts = ] 'centralized_conflicts' ] 
    [ , [ @conflict_retention = ] conflict_retention ]
    [ , [ @queue_type = ] 'queue_type' ]
    [ , [ @add_to_active_directory = ] 'add_to_active_directory' ]
    [ , [ @logreader_job_name = ] 'logreader_agent_name' ]
    [ , [ @qreader_job_name = ] 'queue_reader_agent_name' ]
    [ , [ @publisher = ] 'publisher' ] 
    [ , [ @allow_initialize_from_backup = ] 'allow_initialize_from_backup' ]
    [ , [ @replicate_ddl = ] replicate_ddl ]
    [ , [ @enabled_for_p2p = ] 'enabled_for_p2p' ]
    [ , [ @publish_local_changes_only = ] 'publish_local_changes_only' ]
    [ , [ @enabled_for_het_sub = ] 'enabled_for_het_sub' ]

引数

  • [ @publication=] 'publication'
    作成するパブリケーションの名前を指定します。publication のデータ型は sysname で、既定値はありません。この名前は、データベース内で一意であることが必要です。
  • [ @restricted=] 'restricted'
    旧バージョンとの互換性のためにのみサポートされています。default_access を使用してください。
  • [ @sync_method=] 'sync_method**'**
    同期モードを指定します。sync_method のデータ型は nvarchar(13) で、次のいずれかの値を指定できます。

    説明

    native

    すべてのテーブルのネイティブ モード BCP 出力を作成する。Oracle パブリッシャに対してはサポートされていません。

    character

    すべてのテーブルのキャラクタモード BCP 出力を作成する。Oracle パブリッシャの場合、character はスナップショット レプリケーションでのみ有効です。

    concurrent

    すべてのテーブルのネイティブ モード BCP 出力を作成するが、スナップショット中はテーブルをロックしない。トランザクション パブリケーションでのみサポートされます。Oracle パブリッシャに対してはサポートされていません。

    concurrent_c

    すべてのテーブルのキャラクタモードの BCP 出力を作成するが、スナップショット中はテーブルをロックしない。トランザクション パブリケーションでのみサポートされます。

    database snapshot

    データベース スナップショットから、すべてのテーブルのネイティブ モードの一括コピー プログラム出力を作成します。このオプションを使用するには、SQL Server 2005 Enterprise Edition Service Pack 2 以降が必要です。

    database snapshot character

    データベース スナップショットから、すべてのテーブルのキャラクタ モードの一括コピー プログラム出力を作成します。このオプションを使用するには、SQL Server 2005 Enterprise Edition Service Pack 2 以降が必要です。

    NULL (既定値)

    Microsoft SQL Server パブリッシャの場合、既定値は native です。SQL Server 以外のパブリッシャの場合で、repl_freq の値が Snapshot の場合、既定値は character になり、その他の場合、既定値は concurrent_c になります。

  • [ @repl_freq=] 'repl_freq'
    レプリケーション周期の種類を指定します。repl_freq のデータ型は nvarchar(10) で、次のいずれかの値を指定できます。

    説明

    continuous (既定値)

    すべてのログベースのトランザクションの出力をパブリッシュする。SQL Server 以外のパブリッシャの場合は、sync_methodconcurrent_c に設定する必要があります。

    snapshot

    スケジュールされた同期イベントのみをパブリッシュする。SQL Server 以外のパブリッシャの場合は、sync_methodcharacter に設定する必要があります。

  • [ @description =] 'description'
    パブリケーションに関する説明を指定します (省略可能)。description のデータ型は nvarchar(255) で、既定値は NULL です。
  • [ @status=] 'status'
    パブリケーション データを使用できるかどうかを指定します。status のデータ型は nvarchar(8) で、次のいずれかの値を指定できます。

    説明

    active

    サブスクライバでパブリケーション データを直ちに使用できる。

    inactive (既定値)

    パブリケーションが最初に作成されたときは、サブスクライバでパブリケーション データを使用できない (サブスクライブすることはできますが、サブスクリプションは処理されません)。

    Oracle パブリッシャに対してはサポートされていません。

  • [ @independent_agent=] 'independent_agent'
    このパブリケーションに対して、スタンドアロン ディストリビューション エージェントが存在するかどうかを指定します。independent_agent のデータ型は nvarchar(5) で、既定値は FALSE です。値が true の場合は、このパブリケーションに対して、単独のディストリビューション エージェントが存在することを示します。false の場合、パブリケーションでは共有ディストリビューション エージェントが使用され、パブリッシャ データベース/サブスクライバ データベースの各組では単一の共有エージェントが保持されます。
  • [ @immediate_sync=] 'immediate_synchronization'
    スナップショット エージェントが実行されるたびに、パブリケーションに対して同期ファイルが作成されるかどうかを指定します。immediate_synchronization のデータ型は nvarchar(5) で、既定値は FALSE です。値が true の場合、スナップショット エージェントを実行するたびに、同期ファイルが作成または再作成されます。サブスクリプションが作成される前にスナップショット エージェントが完了していれば、サブスクライバでは直ちに同期ファイルを取得できます。新しいサブスクリプションで、最後に実行されたスナップショット エージェントによって生成された最新の同期ファイルを取得します。immediate_synchronizationtrue を指定するには、independent_agenttrue であることが必要です。false の場合、新しいサブスクリプションがある場合にだけ、同期ファイルが作成されます。既存のパブリケーションに新しいアーティクルを増分追加する場合は、サブスクリプションごとに sp_addsubscription を呼び出す必要があります。サブスクリプションの後、スナップショット エージェントが起動して完了するまでは、サブスクライバでは同期ファイルを取得できません。
  • [ @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 ディレクトリを作成する必要があります。
  • [ @allow_push=] 'allow_push'
    特定のパブリケーションに対して、プッシュ サブスクリプションを作成できるかどうかを指定します。allow_pushnvarchar(5) であり、既定値は TRUE です。TRUE の場合、パブリケーションに対してプッシュ サブスクリプションを作成できます。
  • [ @allow_pull=] 'allow_pull'
    特定のパブリケーションに対して、プル サブスクリプションを作成できるかどうかを指定します。allow_pull のデータ型は nvarchar(5) で、既定値は FALSE です。false の場合、パブリケーションに対してプル サブスクリプションは作成できません。
  • [ @allow_anonymous=] 'allow_anonymous'
    特定のパブリケーションに対して、匿名サブスクリプションを作成できるかどうかを指定します。allow_anonymous のデータ型は nvarchar(5) で、既定値は FALSE です。値が true の場合は、immediate_synchronizationtrue に設定する必要があります。false の場合、パブリケーションに対して匿名サブスクリプションは作成できません。
  • [ @allow_sync_tran=] 'allow_sync_tran'
    パブリケーションでサブスクリプションの即時更新を許可するかどうかを指定します。allow_sync_tran のデータ型は nvarchar(5) で、既定値は FALSE です。trueOracle パブリッシャに対してはサポートされていません
  • [ @autogen_sync_procs=] 'autogen_sync_procs'
    更新サブスクリプションの同期ストアド プロシージャがパブリッシャで生成されるかどうかを指定します。autogen_sync_procs のデータ型は nvarchar(5) で、次のいずれかの値を指定できます。

    説明

    true

    更新サブスクリプションが有効の場合、自動的に生成される。

    false

    更新サブスクリプションが無効の場合、または Oracle パブリッシャの場合、自動的に生成される。

    NULL (既定値)

    更新サブスクリプションが有効の場合、既定値は true になり、更新サブスクリプションが無効の場合、既定値は false になります。

    ms188738.note(ja-jp,SQL.90).gifメモ :
    autogen_sync_procsに対してユーザーが指定した値は、allow_queued_tranallow_sync_tran に指定された値に応じて、他の値に代替されます。
  • [ @retention=] retention
    サブスクリプションの利用状況の保有期間を時間数で指定します。retention のデータ型は int で、既定値は 336 時間です。サブスクリプションは、保有期間内に非アクティブになると、期限切れとなって削除されます。この値には、パブリッシャによって使用されるディストリビューション データベースの最大保有期間を上回る値を指定することもできます。0 を指定した場合、パブリケーションへの既知のサブスクリプションは期限切れとならず、期限切れサブスクリプション クリーンアップ エージェントによって削除されることもありません。
  • [ @allow_queued_tran= ] 'allow_queued_updating'
    変更をパブリッシャに適用できるようになるまで、サブスクライバでの変更のキュー登録を有効または無効にします。allow_queued_updating のデータ型は nvarchar(5) で、既定値は FALSE です。false の場合、サブスクライバでの変更はキュー登録されません。trueOracle パブリッシャに対してはサポートされていません
  • [ @snapshot_in_defaultfolder= ] 'snapshot_in_default_folder'
    スナップショット ファイルが既定のフォルダに格納されているかどうかを指定します。snapshot_in_default_folder のデータ型は nvarchar(5) で、既定値は TRUE です。true を指定した場合、スナップショット ファイルは既定のフォルダに格納されていることを示します。false を指定した場合、スナップショット ファイルは alternate_snapshot_folder で指定された代替位置に格納されています。代替位置は、他のサーバー、ネットワーク ドライブ、CD-ROM やリムーバブル ディスクなどのリムーバブル メディアに設定できます。スナップショット ファイルを FTP サイトに保存し、後でサブスクライバで取得することもできます。このパラメータを true に設定した状態で、@alt_snapshot_folder パラメータで代替位置を指定することもできます。これらのパラメータを組み合わせて指定した場合、スナップショット ファイルは、既定のフォルダと代替位置の両方に格納されます。
  • [ @alt_snapshot_folder= ] 'alternate_snapshot_folder'
    スナップショットの代替フォルダの場所を指定します。alternate_snapshot_folder のデータ型は nvarchar(255) で、既定値は NULL です。
  • [ @pre_snapshot_script= ] 'pre_snapshot_script'
    .sql ファイルの場所を指すポインタを指定します。pre_snapshot_scriptnvarchar(255) であり、既定値は NULL です。ディストリビューション エージェントでは、サブスクライバでスナップショットが適用されるとき、レプリケートされたオブジェクト スクリプトよりも前に、プリスナップショット スクリプトが実行されます。このスクリプトは、サブスクリプション データベースへの接続時にディストリビューション エージェントによって使用されるセキュリティ コンテキストで実行されます。
  • [ @post_snapshot_script= ] 'post_snapshot_script'
    .sql ファイルの場所を指すポインタを指定します。post_snapshot_scriptnvarchar(255) であり、既定値は NULL です。最初の同期時、ディストリビューション エージェントでは、他のすべてのレプリケートされたオブジェクト スクリプトとデータが適用された後、ポスト スナップショット スクリプトが実行されます。このスクリプトは、サブスクリプション データベースへの接続時にディストリビューション エージェントによって使用されるセキュリティ コンテキストで実行されます。
  • [ @compress_snapshot= ] 'compress_snapshot'
    @alt_snapshot_folder の位置に書き込まれるスナップショットを Microsoft CAB 形式で圧縮するかどうかを指定します。compress_snapshot のデータ型は nvarchar(5) で、既定値は FALSE です。false を指定した場合、スナップショットは圧縮されません。true を指定した場合、スナップショットは圧縮されます。2 GB を超えるスナップショット ファイルは圧縮できません。圧縮されたスナップショット ファイルは、ディストリビューション エージェントが実行される場所に展開されます。プル サブスクリプションでは通常、ファイルがサブスクライバで展開されるよう、圧縮されたスナップショットが使用されます。既定のフォルダ内のスナップショットは圧縮できません。
  • [ @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_subdirectory のデータ型は nvarchar(255) 型で、既定値は NULL です。このプロパティはパブリケーションごとに格納されるため、個々のパブリケーションでは、独自の ftp_subdirctory を使用することも、サブディレクトリを使用しないよう選択することもできます。NULL 値は、サブディレクトリを使用しないことを表します。
  • [ @ftp_login = ] 'ftp_login'
    FTP サービスへの接続に使用するユーザー名を指定します。ftp_login のデータ型は sysname で、既定値は ANONYMOUS です。
  • [ @ftp_password = ] 'ftp_password'
    FTP サービスへの接続に使用するユーザー パスワードです。ftp_passwordsysname であり、既定値は NULL です。
  • [ @allow_dts = ] 'allow_dts'
    パブリケーションでデータを変換できるかどうかを指定します。サブスクリプションを作成するときに DTS パッケージを指定できます。allow_transformable_subscriptions のデータ型は nvarchar(5) で、既定値は FALSE です。既定値は DTS 変換を許可しないことを表します。allow_dts が true の場合、sync_methodcharacter または concurrent_c に設定する必要があります。

    trueOracle パブリッシャに対してはサポートされていません。

  • [ @allow_subscription_copy = ] 'allow_subscription_copy'
    このパブリケーションにサブスクライブするサブスクリプション データベースをコピーする機能を有効または無効にします。allow_subscription_copynvarchar(5) であり、既定値は FALSE です。
  • [ @conflict_policy = ] 'conflict_policy'
    キュー更新サブスクライバ オプションが使用されているときに適用する競合の解決方法を指定します。conflict_policy のデータ型は nvarchar(100) で、既定値は NULL です。次のいずれかの値を指定できます。

    説明

    pub wins

    パブリッシャを優先。

    sub reinit

    サブスクライバを再初期化。

    sub wins

    サブスクライバを優先。

    NULL (既定値)

    パブリケーションがスナップショット パブリケーションの場合に NULL を指定すると、既定の解決方法は sub reinit になります。パブリケーションがスナップショット パブリケーション以外の場合に NULL を指定すると、既定の解決方法は pub wins になります。

    Oracle パブリッシャに対してはサポートされていません。

  • [ @centralized_conflicts = ] 'centralized_conflicts'
    指定したパブリッシャに競合レコードを格納するかどうかを指定します。centralized_conflicts のデータ型は nvarchar(5) で、既定値は TRUE です。true を指定した場合、競合レコードはパブリッシャに格納されます。false を指定した場合、競合レコードは、競合の原因となったパブリッシャとサブスクライバの両方に格納されます。Oracle パブリッシャに対してはサポートされていません。
  • [ @conflict_retention = ] conflict_retention
    競合の保有期間の日数を指定します。conflict_retention のデータ型は int で、既定値は 14 です。Oracle パブリッシャに対してはサポートされていません
  • [ @queue_type = ] 'queue_type'
    使用するキューの種類を指定します。queue_type のデータ型は nvarchar(10) で、既定値は NULL です。次のいずれかの値を指定できます。

    説明

    sql

    トランザクションの保存に SQL Server を使用。

    NULL (既定値)

    既定値 sql を使用。SQL Server を使用してトランザクションを保存します。

    ms188738.note(ja-jp,SQL.90).gifメモ :
    Microsoft Message Queuing (MSMQ) の使用は現在サポートされていません。値 msmq を指定すると、警告が発生し、レプリケーションは自動的に値 sql に設定されます。

    Oracle パブリッシャに対してはサポートされていません。

  • [ @add_to_active_directory = ] 'add_to_active_directory'
    このパラメータは、旧バージョンのスクリプトとの互換性を保つために用意されており、使用は推奨されません。現在、Microsoft Active Directory にはパブリケーション情報を追加できません。
  • [ @logreader_job_name = ] 'logreader_agent_name'
    既存のエージェント ジョブの名前を指定します。logreader_agent_name のデータ型は sysname で、既定値は NULL です。このパラメータは、ログ リーダー エージェントで、新しく作成されるジョブではなく既存のジョブが使用される場合にのみ指定します。
  • [ @qreader_job_name = ] 'queue_reader_agent_name'
    既存のエージェント ジョブの名前を指定します。queue_reader_agent_name のデータ型は sysname で、既定値は NULL です。このパラメータは、キュー リーダー エージェントで、新しく作成されるジョブではなく既存のジョブが使用される場合にのみ指定します。
  • [ @publisher= ] 'publisher'
    SQL Server 以外のパブリッシャを指定します。publisher のデータ型は sysname で、既定値は NULL です。

    ms188738.note(ja-jp,SQL.90).gifメモ :
    SQL Server パブリッシャにパブリケーションを追加する場合は、publisher は使用しないでください。
  • [ @allow_initialize_from_backup = ] 'allow_initialize_from_backup'
    サブスクライバでこのパブリケーションへのサブスクリプションを初期化する場合、初期スナップショットではなくバックアップから初期化できるかどうかを指定します。allow_initialize_from_backup のデータ型は nvarchar(5) で、次のいずれかの値を指定できます。

    説明

    true

    バックアップからの初期化を有効にする。

    false

    バックアップからの初期化を無効にする。

    NULL (既定値)

    ピアツーピア レプリケーション トポロジのパブリケーションの場合、既定値は true になり、他のパブリケーションの場合、既定値は false になります。

    詳細については、「スナップショットを使用しないトランザクション サブスクリプションの初期化」を参照してください。

  • [ @replicate_ddl= ] replicate_ddl
    パブリケーションに対してスキーマ レプリケーションがサポートされるかどうかを指定します。replicate_ddl のデータ型は int で、既定値は、SQL Server パブリッシャでは 1、SQL Server 以外のパブリッシャでは 0 です。1 は、パブリッシャで実行されるデータ定義言語 (DDL) ステートメントがレプリケートされることを示し、0 は、DDL ステートメントがレプリケートされないことを示します。*スキーマのレプリケーションは、Oracle パブリッシャに対してはサポートされていません。*詳細については、「パブリケーション データベースでのスキーマの変更」を参照してください。
  • [ @enabled_for_p2p= ] 'enabled_for_p2p'
    ピアツーピア レプリケーション トポロジで、パブリケーションを使用できるようにします。enabled_for_p2p のデータ型は nvarchar(5) で、既定値は FALSE です。true はパブリケーションでピアツーピア レプリケーションがサポートされることを示します。enabled_for_p2ptrue に設定した場合、次の制限が適用されます。

    • allow_anonymousfalse であること。
    • allow_dtsfalse であること。
    • allow_initialize_from_backuptrue であること。
    • allow_queued_tranfalse であること。
    • allow_sync_tranfalse であること。
    • conflict_policyfalse であること。
    • independent_agenttrue であること。

    repl_freqcontinuous であること。

    • replicate_ddl1 であること。

    詳細については、「ピア ツー ピア トランザクション レプリケーション」を参照してください。

  • [ @publish_local_changes_only= ] 'publish_local_changes_only'
    内部使用のみです。
  • [ @enabled_for_het_sub= ] 'enabled_for_het_sub'
    パブリケーションで、SQL Server 以外のサブスクライバをサポートできるようにします。enabled_for_het_sub のデータ型は nvarchar(5) で、既定値は FALSE です。値 true は、パブリケーションで SQL Server 以外のサブスクライバがサポートされることを示します。enabled_for_het_subtrue に設定した場合、次の制限が適用されます。

    • allow_initialize_from_backupfalse であること。
    • allow_pushtrue であること。
    • allow_queued_tranfalse であること。
    • allow_subscription_copyfalse であること。
    • allow_sync_tranfalse であること。
    • autogen_sync_procsfalse であること。
    • conflict_policy が NULL であること。
    • enabled_for_internetfalse であること。
    • enabled_for_p2pfalse であること。
    • ftp_address が NULL であること。
    • ftp_subdirectory が NULL であること。
    • ftp_password が NULL であること。
    • pre_snapshot_script が NULL であること。
    • post_snapshot_script が NULL であること。
    • replicate_ddl が 0 であること。
    • qreader_job_name が NULL であること。
    • queue_type が NULL であること。
    • sync_method には、native または concurrent は指定できません。

    詳細については、「SQL Server 以外のサブスクライバ」を参照してください。

解説

sp_addpublication は、スナップショット レプリケーションおよびトランザクション レプリケーションで使用します。

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

パブリケーションで DDL レプリケーションが有効になっている場合 (replicate_ddl = 1 の場合)、パブリケーションに対してレプリケーションなしの DDL の変更を行うには、最初に sp_changepublication (Transact-SQL) を実行して、replicate_ddl0 に設定する必要があります。レプリケーションなしの DDL ステートメントを実行した後は、sp_changepublication (Transact-SQL) を実行して、DDL レプリケーションを再度有効にできます。

権限

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

戻り値

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

使用例

-- To avoid storing the login and password in the script file, the values 
-- are passed into SQLCMD as scripting variables. 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".

DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks'; 
SET @publication = N'AdvWorksProductTran'; 
-- Windows account used to run the Log Reader and Snapshot Agents.
SET @login = $(Login); 
-- This should be passed at runtime.
SET @password = $(Password); 

-- Enable transactional or snapshot replication on the publication database.
EXEC sp_replicationdboption 
    @dbname=@publicationDB, 
    @optname=N'publish',
    @value = N'true';

-- Execute sp_addlogreader_agent to create the agent job. 
EXEC sp_addlogreader_agent 
    @job_login = @login, 
    @job_password = @password,
    -- Explicitly specify the use of Windows Integrated Authentication (default) 
    -- when connecting to the Publisher.
    @publisher_security_mode = 1;

-- Create a new transactional publication with the required properties. 
EXEC sp_addpublication 
    @publication = @publication, 
    @status = N'active',
    @allow_push = N'true',
    @allow_pull = N'true',
    @independent_agent = N'true';

-- Create a new snapshot job for the publication, using a default schedule.
EXEC sp_addpublication_snapshot 
    @publication = @publication, 
    @job_login = @login, 
    @job_password = @password,
    -- Explicitly specify the use of Windows Integrated Authentication (default) 
    -- when connecting to the Publisher.
    @publisher_security_mode = 1;
GO

参照

関連項目

sp_addlogreader_agent (Transact-SQL)
sp_addpublication_snapshot (Transact-SQL)
sp_changepublication (Transact-SQL)
sp_droppublication (Transact-SQL)
sp_helppublication (Transact-SQL)
sp_replicationdboption (Transact-SQL)
レプリケーション ストアド プロシージャ (Transact-SQL)

その他の技術情報

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

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 12 月 12 日

追加内容 :
  • @sync_method パラメータの新しい値に関する情報を追加。