次の方法で共有


MergePublication クラス

マージ パブリケーションを表します。

継承階層

System.Object
  Microsoft.SqlServer.Replication.ReplicationObject
    Microsoft.SqlServer.Replication.Publication
      Microsoft.SqlServer.Replication.MergePublication

名前空間:  Microsoft.SqlServer.Replication
アセンブリ:  Microsoft.SqlServer.Rmo (Microsoft.SqlServer.Rmo.dll)

構文

'宣言
Public NotInheritable Class MergePublication _
    Inherits Publication
'使用
Dim instance As MergePublication
public sealed class MergePublication : Publication
public ref class MergePublication sealed : public Publication
[<SealedAttribute>]
type MergePublication =  
    class 
        inherit Publication 
    end
public final class MergePublication extends Publication

MergePublication 型は、以下のメンバーを公開しています。

コンストラクター

  名前 説明
パブリック メソッド MergePublication() MergePublication クラスの新しいインスタンスを作成します。
パブリック メソッド MergePublication(String, String, ServerConnection) 指定した名前、データベース、およびパブリッシャーへの接続を使用して MergePublication クラスの新しいインスタンスを初期化します。
パブリック メソッド MergePublication(String, String, ServerConnection, Boolean) スナップショット エージェント ジョブを既定で作成するかどうかを指定して、MergePublication クラスのインスタンスを作成します。

先頭に戻る

プロパティ

  名前 説明
パブリック プロパティ AltSnapshotFolder パブリケーションのスナップショット ファイルの代替場所を取得します。値の設定も可能です。 (Publication から継承されています。)
パブリック プロパティ Attributes パブリケーション属性を取得します。値の設定も可能です。 (Publication から継承されています。)
パブリック プロパティ AutomaticReinitializationPolicy パブリケーションの変更によってサブスクリプションが再初期化されるとき、パブリッシャーでの変更がパブリッシャーにアップロードされるかどうかを取得します。値の設定も可能です。
パブリック プロパティ CachePropertyChanges レプリケーション プロパティに加えられた変更をキャッシュするか、またはすぐに適用するかを取得します。値の設定も可能です。 (ReplicationObject から継承されています。)
パブリック プロパティ CompatibilityLevel マージ パブリケーションにサブスクライブできる Microsoft SQL Server の最も古いバージョンを取得または設定します。 (Publication.CompatibilityLevel をオーバーライドします。)
パブリック プロパティ ConflictRetention 競合するデータ行が競合テーブルに保持される日数を取得します。値の設定も可能です。 (Publication から継承されています。)
パブリック プロパティ ConnectionContext Microsoft SQL Server のインスタンスへの接続を取得します。値の設定も可能です。 (ReplicationObject から継承されています。)
パブリック プロパティ CreateSnapshotAgentByDefault パブリケーションが作成されるときにスナップショット エージェント ジョブが自動的に追加されるかどうかを取得します。値の設定も可能です。 (Publication から継承されています。)
パブリック プロパティ DatabaseName パブリケーション データベースの名前を取得します。値の設定も可能です。 (Publication から継承されています。)
パブリック プロパティ Description パブリケーションの説明テキストを取得します。値の設定も可能です。 (Publication から継承されています。)
パブリック プロパティ FtpAddress ファイル転送プロトコル (FTP) を介してサブスクリプションを初期化できるパブリケーションの、FTP サーバー コンピューターのアドレスを取得します。値の設定も可能です。 (Publication から継承されています。)
パブリック プロパティ FtpLogin ファイル転送プロトコル (FTP) を介してサブスクリプションを初期化できるパブリケーションの、FTP サーバーへの接続に使用するログインを取得します。値の設定も可能です。 (Publication から継承されています。)
パブリック プロパティ FtpPassword ファイル転送プロトコル (FTP) を介してサブスクリプションを初期化できるパブリケーションの、FTP サーバーへの接続に使用するログインのパスワードを設定します。 (Publication から継承されています。)
パブリック プロパティ FtpPort ファイル転送プロトコル (FTP) を介してサブスクリプションを初期化できるパブリケーションの、FTP サーバー コンピューターのポートを取得します。値の設定も可能です。 (Publication から継承されています。)
パブリック プロパティ FtpSubdirectory ファイル転送プロトコル (FTP) を介してサブスクリプションを初期化できるパブリケーションの、FTP サーバー コンピューター上のサブディレクトリを取得します。値の設定も可能です。 (Publication から継承されています。)
パブリック プロパティ HasSubscription パブリケーションに 1 つ以上のサブスクリプションがあるかどうかを取得します。 (Publication から継承されています。)
パブリック プロパティ IsExistingObject サーバーにオブジェクトが存在するかどうかを取得します。 (ReplicationObject から継承されています。)
パブリック プロパティ MaxConcurrentDynamicSnapshots パブリケーションにパラメーター化された行フィルターがある場合、データ スナップショットの生成時にサポートされる同時実行スナップショット エージェント セッションの最大数を取得します。値の設定も可能です。
パブリック プロパティ MaxConcurrentMerge パブリケーションと同時に同期できるマージ エージェントの最大数を取得します。値の設定も可能です。
パブリック プロパティ MergeArticles マージ パブリケーション内の既存のアーティクルを取得します。
パブリック プロパティ MergeSubscriptions マージ パブリケーションに属するサブスクリプションを取得します。
パブリック プロパティ Name パブリケーションの名前を取得します。値の設定も可能です。 (Publication から継承されています。)
パブリック プロパティ PartitionGroupsOption 事前計算されたパーティションを使用して同期処理の最適化を行うかどうかを取得します。値の設定も可能です。
パブリック プロパティ PostSnapshotScript 初期スナップショットをサブスクライバーに適用した後で実行される Transact-SQL スクリプト ファイルの名前と完全なパスを取得します。値の設定も可能です。 (Publication から継承されています。)
パブリック プロパティ PreSnapshotScript 初期スナップショットをサブスクライバーに適用する前に実行される Transact-SQL スクリプト ファイルの名前と完全なパスを取得します。値の設定も可能です。 (Publication から継承されています。)
パブリック プロパティ Priority インフラストラクチャです。パブリケーションの優先度を取得します。
パブリック プロパティ PubId パブリケーションを一意に識別する値を取得します。 (Publication から継承されています。)
パブリック プロパティ ReplicateDdl データ定義言語 (DDL) の変更をレプリケートするかどうかを決定する DDL レプリケーション オプションを取得します。値の設定も可能です。 (Publication から継承されています。)
パブリック プロパティ RetentionPeriod サブスクリプションがパブリケーションと同期されていない場合に、サブスクリプションの有効期限が切れるまでの時間を取得します。値の設定も可能です。 (Publication から継承されています。)
パブリック プロパティ RetentionPeriodUnit RetentionPeriodUnit プロパティが表される単位を取得します。値の設定も可能です。
パブリック プロパティ SecureFtpPassword ファイル転送プロトコル (FTP) を介してサブスクリプションを初期化できるパブリケーションの、FTP サーバーへの接続に使用するログインのパスワードを SecureString オブジェクトとして設定します。 (Publication から継承されています。)
パブリック プロパティ SnapshotAgentExists このパブリケーションの初期スナップショットを生成するための SQL Server エージェント ジョブが存在するかどうかを取得します。 (Publication から継承されています。)
パブリック プロパティ SnapshotAvailable このパブリケーションのスナップショット ファイルが生成済みでサブスクライバーの初期化に利用できるかどうかを示す値を取得または設定します。
パブリック プロパティ SnapshotGenerationAgentProcessSecurity スナップショット エージェント ジョブを実行する Windows アカウントを設定するオブジェクトを取得します。 (Publication から継承されています。)
パブリック プロパティ SnapshotGenerationAgentPublisherSecurity パブリッシャーに接続するためにスナップショット エージェントが使用するセキュリティ コンテキストを取得します。 (Publication から継承されています。)
パブリック プロパティ SnapshotJobId 現在のパブリケーションのスナップショット エージェント ジョブ ID を取得します。 (Publication から継承されています。)
パブリック プロパティ SnapshotMethod 初期スナップショットのデータ ファイル形式を取得します。値の設定も可能です。 (Publication から継承されています。)
パブリック プロパティ SnapshotSchedule 現在のパブリケーションのスナップショット エージェントのスケジュールを設定するオブジェクトを取得します。 (Publication から継承されています。)
パブリック プロパティ SqlServerName このオブジェクトの接続先となる Microsoft SQL Server インスタンスの名前を取得します。 (ReplicationObject から継承されています。)
パブリック プロパティ Status パブリケーションの状態を取得します。値の設定も可能です。 (Publication から継承されています。)
パブリック プロパティ Type パブリケーションの種類を取得します。値の設定も可能です。 (Publication から継承されています。)
パブリック プロパティ UserData ユーザーが独自のデータをオブジェクトにアタッチすることを許可するオブジェクト プロパティを取得します。値の設定も可能です。 (ReplicationObject から継承されています。)
パブリック プロパティ UsesHostName HOST_NAME 関数を使用してパーティションを評価する、パラメーター化された行フィルターがマージ パブリケーションにあるかどうかを示す値を取得します。
パブリック プロパティ ValidateSubscriberInfo パラメーター化された行フィルターを使用する場合、パブリッシュされたデータのサブスクライバー パーティションを定義する関数を取得します。値の設定も可能です。
パブリック プロパティ WebSynchronizationUrl Web 同期で使用する URL を取得します。値の設定も可能です。

先頭に戻る

メソッド

  名前 説明
パブリック メソッド AddMergeDynamicSnapshotJob パラメーター化された行フィルターを使用する場合に、フィルター選択されたデータ パーティションをサブスクライバー用に生成する、スナップショット エージェント ジョブを追加します。
パブリック メソッド AddMergeDynamicSnapshotJobForLateBoundComClients パラメーター化された行フィルターを使用する場合に、フィルター選択されたデータ パーティションをサブスクライバー用に生成するスナップショット エージェント ジョブを追加できるように、遅延バインドされた COM クライアントを有効化します。
パブリック メソッド AddMergePartition パラメーター化された行フィルターを使用したマージ パブリケーションのサブスクライバー パーティションを定義します。
パブリック メソッド BrowseSnapshotFolder スナップショット ファイルが生成されたディレクトリの場所の完全なパスを返します。
パブリック メソッド ChangeMergeDynamicSnapshotJobScheduleWithJobId スナップショット エージェント ジョブのスケジュールを、ジョブ ID に基づいて変更します。このスナップショット エージェント ジョブは、フィルター選択されたデータ パーティションをサブスクライバー用に生成するジョブです。
パブリック メソッド ChangeMergeDynamicSnapshotJobScheduleWithJobIdForLateBoundComClients 遅延バインドされた COM クライアントが、スナップショット エージェント ジョブのスケジュールをジョブ ID に基づいて変更できるようにします。このスナップショット エージェント ジョブは、フィルター選択されたデータ パーティションをサブスクライバー用に生成するジョブです。
パブリック メソッド ChangeMergeDynamicSnapshotJobScheduleWithJobName スナップショット エージェント ジョブのスケジュールを、ジョブ名に基づいて変更します。このスナップショット エージェント ジョブは、フィルター選択されたデータ パーティションをサブスクライバー用に生成するジョブです。
パブリック メソッド ChangeMergeDynamicSnapshotJobScheduleWithJobNameForLateBoundComClients 遅延バインドされた COM クライアントが、スナップショット エージェント ジョブのスケジュールをジョブ名に基づいて変更できるようにします。このスナップショット エージェント ジョブは、フィルター選択されたデータ パーティションをサブスクライバー用に生成するジョブです。
パブリック メソッド CommitPropertyChanges キャッシュされているすべてのプロパティ変更ステートメントを、Microsoft SQL Server のインスタンスに送信します。 (ReplicationObject から継承されています。)
パブリック メソッド CopySnapshot スナップショット フォルダーから目的のフォルダーに、マージ パブリケーション用のスナップショット ファイルをコピーします。
パブリック メソッド Create パブリケーションを作成します。 (Publication から継承されています。)
パブリック メソッド CreateSnapshotAgent パブリケーションの初期スナップショットを生成するために使用される SQL Server エージェント ジョブがまだ存在しない場合、このジョブを作成します。 (Publication から継承されています。)
パブリック メソッド Decouple 参照先のレプリケーション オブジェクトをサーバーから切断します。 (ReplicationObject から継承されています。)
パブリック メソッド DisableSynchronizationPartner このマージ パブリケーションの、指定された同期パートナーを無効化します。
パブリック メソッド EnableSynchronizationPartner このマージ パブリケーションの、指定された同期パートナーを有効化します。
パブリック メソッド EnumAllMergeJoinFilters マージ パブリケーションで定義されているすべてのマージ結合フィルターを返します。
パブリック メソッド EnumArticles パブリケーション内のアーティクルを返します。 (Publication から継承されています。)
パブリック メソッド EnumMergeDynamicSnapshotJobs マージ動的スナップショット ジョブの一覧を返します。
パブリック メソッド EnumMergePartitions このマージ パブリケーションに対して定義されたサブスクライバー パーティションを返します。
パブリック メソッド EnumPublicationAccesses パブリッシャーに対するアクセス権を持つログインを返します。 (Publication から継承されています。)
パブリック メソッド EnumSubscriptions パブリケーションをサブスクライブするサブスクリプションを返します。 (Publication から継承されています。)
パブリック メソッド EnumSynchronizationPartners このマージ パブリケーションの、代替同期パートナーを返します。
パブリック メソッド Equals (Object から継承されています。)
パブリック メソッド GenerateFilters インフラストラクチャです。マージ パブリケーションのフィルターを作成します。
パブリック メソッド GetHashCode (Object から継承されています。)
パブリック メソッド GetMergeDynamicSnapshotJobScheduleWithJobId フィルター選択されたデータ パーティションをサブスクライバー用に生成するスナップショット エージェント ジョブのスケジュールを、ジョブ ID に基づいて返します。
パブリック メソッド GetMergeDynamicSnapshotJobScheduleWithJobName フィルター選択されたデータ パーティションをサブスクライバー用に生成するスナップショット エージェント ジョブのスケジュールを、ジョブ名に基づいて返します。
パブリック メソッド GetType (Object から継承されています。)
パブリック メソッド GrantPublicationAccess パブリケーション アクセス リスト (PAL) に指定したログインを追加します。 (Publication から継承されています。)
パブリック メソッド Load サーバーから既存のオブジェクトのプロパティを読み込みます。 (ReplicationObject から継承されています。)
パブリック メソッド LoadProperties サーバーから既存のオブジェクトのプロパティを読み込みます。 (ReplicationObject から継承されています。)
パブリック メソッド MakePullSubscriptionWellKnown マージ プル サブスクリプションをパブリッシャーに登録します。
パブリック メソッド ReadLastValidationDateTimes サブスクライバーの最新のサブスクリプション検証についての情報を返します。
パブリック メソッド Refresh オブジェクトのプロパティを再度読み込みます。 (ReplicationObject から継承されています。)
パブリック メソッド ReinitializeAllSubscriptions すべてのサブスクリプションに再初期化のマークを付けます。
パブリック メソッド Remove() 既存のパブリケーションを削除します。 (Publication から継承されています。)
パブリック メソッド Remove(Boolean) ディストリビューターにアクセスできない場合でも、既存のパブリケーションを削除します。 (Publication から継承されています。)
パブリック メソッド RemoveMergeDynamicSnapshotJob 指定した動的スナップショット ジョブを、マージ パブリケーションから削除します。
パブリック メソッド RemoveMergePartition マージ パブリケーションで定義されている既存のサブスクライバー パーティションを削除します。
パブリック メソッド RemovePullSubscription マージ パブリケーションに対するプル サブスクリプションのサブスクライバーの登録を削除します。
パブリック メソッド ReplicateUserDefinedScript ユーザー定義スクリプトの実行を、指定したパブリケーションのサブスクライバーにレプリケートします。 (Publication から継承されています。)
パブリック メソッド ResynchronizeSubscription マージ サブスクリプションを、指定の有効な状態に再同期します。
パブリック メソッド RevokePublicationAccess パブリケーション アクセス リスト (PAL) から指定したログインを削除します。 (Publication から継承されています。)
パブリック メソッド Script スクリプト オプションで指定したとおりにパブリケーションを再作成するために使用できる Transact-SQL スクリプトを生成します。 (Publication から継承されています。)
パブリック メソッド ScriptMergeDynamicSnapshotJob スナップショット エージェント ジョブを再作成する Transact-SQL スクリプトを生成します。このスナップショット エージェント ジョブは、パラメーター化された行フィルターを使用して、サブスクライバーのパーティション データ スナップショットを、パブリケーション用に生成するジョブです。
パブリック メソッド ScriptMergePartition パラメーター化された行フィルターを使用してパブリケーション用のサブスクライバー パーティションを再作成するための、Transact-SQL スクリプトを生成します。
パブリック メソッド ScriptPublicationActivation 実行時にマージ パブリケーションの状態をアクティブに設定する Transact-SQL スクリプトを生成します。
パブリック メソッド StartSnapshotGenerationAgentJob パブリケーションの初期スナップショットを生成するジョブを開始します。 (Publication から継承されています。)
パブリック メソッド StopSnapshotGenerationAgentJob 実行中のスナップショット エージェント ジョブの停止を試みます。 (Publication から継承されています。)
パブリック メソッド ToString (Object から継承されています。)
パブリック メソッド ValidatePublication 次回の同期で検証するよう、すべてのサブスクリプションをマークします。
パブリック メソッド ValidateSubscription 次の同期で検証を実行するよう、指定したサブスクリプションをマークします。

先頭に戻る

説明

スレッド セーフ

この型の public static (Microsoft Visual Basic では Shared) のすべてのメンバーは、マルチスレッド操作で安全に使用できます。 インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

使用例

この例では、マージ パブリケーションを作成します。

         // Set the Publisher, publication database, and publication names.
            string publisherName = publisherInstance;
            string publicationName = "AdvWorksSalesOrdersMerge";
            string publicationDbName = "AdventureWorks2012";

            ReplicationDatabase publicationDb;
            MergePublication publication;

            // Create a connection to the Publisher.
            ServerConnection conn = new ServerConnection(publisherName);

            try
            {
                // Connect to the Publisher.
                conn.Connect();

                // Enable the database for merge publication.               
                publicationDb = new ReplicationDatabase(publicationDbName, conn);
                if (publicationDb.LoadProperties())
                {
                    if (!publicationDb.EnabledMergePublishing)
                    {
                        publicationDb.EnabledMergePublishing = true;
                    }
                }
                else
                {
                    // Do something here if the database does not exist. 
                    throw new ApplicationException(String.Format(
                        "The {0} database does not exist on {1}.",
                        publicationDb, publisherName));
                }

                // Set the required properties for the merge publication.
                publication = new MergePublication();
                publication.ConnectionContext = conn;
                publication.Name = publicationName;
                publication.DatabaseName = publicationDbName;

                // Enable precomputed partitions.
                publication.PartitionGroupsOption = PartitionGroupsOption.True;

                // Specify the Windows account under which the Snapshot Agent job runs.
                // This account will be used for the local connection to the 
                // Distributor and all agent connections that use Windows Authentication.
                publication.SnapshotGenerationAgentProcessSecurity.Login = winLogin;
                publication.SnapshotGenerationAgentProcessSecurity.Password = winPassword;

                // Explicitly set the security mode for the Publisher connection
                // Windows Authentication (the default).
                publication.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication = true;

                // Enable Subscribers to request snapshot generation and filtering.
                publication.Attributes |= PublicationAttributes.AllowSubscriberInitiatedSnapshot;
                publication.Attributes |= PublicationAttributes.DynamicFilters;

                // Enable pull and push subscriptions.
                publication.Attributes |= PublicationAttributes.AllowPull;
                publication.Attributes |= PublicationAttributes.AllowPush;

                if (!publication.IsExistingObject)
                {
                    // Create the merge publication.
                    publication.Create();
                    
                    // Create a Snapshot Agent job for the publication.
                    publication.CreateSnapshotAgent();
                }
                else
                {
                    throw new ApplicationException(String.Format(
                        "The {0} publication already exists.", publicationName));
                }
            }

            catch (Exception ex)
            {
                // Implement custom application error handling here.
                throw new ApplicationException(String.Format(
                    "The publication {0} could not be created.", publicationName), ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Set the Publisher, publication database, and publication names.
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2012"

Dim publicationDb As ReplicationDatabase
Dim publication As MergePublication

' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Enable the database for merge publication.                
    publicationDb = New ReplicationDatabase(publicationDbName, conn)
    If publicationDb.LoadProperties() Then
        If Not publicationDb.EnabledMergePublishing Then
            publicationDb.EnabledMergePublishing = True
        End If
    Else
        ' Do something here if the database does not exist. 
        Throw New ApplicationException(String.Format( _
         "The {0} database does not exist on {1}.", _
         publicationDb, publisherName))
    End If

    ' Set the required properties for the merge publication.
    publication = New MergePublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' Enable precomputed partitions.
    publication.PartitionGroupsOption = PartitionGroupsOption.True

    ' Specify the Windows account under which the Snapshot Agent job runs.
    ' This account will be used for the local connection to the 
    ' Distributor and all agent connections that use Windows Authentication.
    publication.SnapshotGenerationAgentProcessSecurity.Login = winLogin
    publication.SnapshotGenerationAgentProcessSecurity.Password = winPassword

    ' Explicitly set the security mode for the Publisher connection
    ' Windows Authentication (the default).
    publication.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication = True

    ' Enable Subscribers to request snapshot generation and filtering.
    publication.Attributes = publication.Attributes Or _
        PublicationAttributes.AllowSubscriberInitiatedSnapshot
    publication.Attributes = publication.Attributes Or _
        PublicationAttributes.DynamicFilters

    ' Enable pull and push subscriptions
    publication.Attributes = publication.Attributes Or _
        PublicationAttributes.AllowPull
    publication.Attributes = publication.Attributes Or _
        PublicationAttributes.AllowPush

    If Not publication.IsExistingObject Then
        ' Create the merge publication.
        publication.Create()

        ' Create a Snapshot Agent job for the publication.
        publication.CreateSnapshotAgent()
    Else
        Throw New ApplicationException(String.Format( _
            "The {0} publication already exists.", publicationName))
    End If
Catch ex As Exception
    ' Implement custom application error handling here.
    Throw New ApplicationException(String.Format( _
        "The publication {0} could not be created.", publicationName), ex)
Finally
    conn.Disconnect()
End Try

この例では、マージ パブリケーションのプロパティを変更します。

         // Define the server, database, and publication names
            string publisherName = publisherInstance;
            string publicationName = "AdvWorksSalesOrdersMerge";
            string publicationDbName = "AdventureWorks2012";

            MergePublication publication;

            // Create a connection to the Publisher.
            ServerConnection conn = new ServerConnection(publisherName);

            try
            {
                // Connect to the Publisher.
                conn.Connect();

                // Set the required properties for the publication.
                publication = new MergePublication();
                publication.ConnectionContext = conn;
                publication.Name = publicationName;
                publication.DatabaseName = publicationDbName;


                // If we can't get the properties for this merge publication, then throw an application exception.
                if (publication.LoadProperties())
                {
                    // If DDL replication is currently enabled, disable it.
                    if (publication.ReplicateDdl == DdlReplicationOptions.All)
                    {
                        publication.ReplicateDdl = DdlReplicationOptions.None;
                    }
                    else
                    {
                        publication.ReplicateDdl = DdlReplicationOptions.All;
                    }
                }
                else
                {
                    throw new ApplicationException(String.Format(
                        "Settings could not be retrieved for the publication. " +
                        "Ensure that the publication {0} exists on {1}.",
                        publicationName, publisherName));
                }
            }
            catch (Exception ex)
            {
                // Do error handling here.
                throw new ApplicationException(
                    "The publication property could not be changed.", ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Define the server, database, and publication names
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2012"

Dim publication As MergePublication

' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Set the required properties for the publication.
    publication = New MergePublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' If we can't get the properties for this merge publication, then throw an application exception.
    If publication.LoadProperties() Then
        ' If DDL replication is currently enabled, disable it.
        If publication.ReplicateDdl = DdlReplicationOptions.All Then
            publication.ReplicateDdl = DdlReplicationOptions.None
        Else
            publication.ReplicateDdl = DdlReplicationOptions.All
        End If
    Else
        Throw New ApplicationException(String.Format( _
         "Settings could not be retrieved for the publication. " + _
         "Ensure that the publication {0} exists on {1}.", _
         publicationName, publisherName))
    End If
Catch ex As Exception
    ' Do error handling here.
    Throw New ApplicationException( _
        "The publication property could not be changed.", ex)
Finally
    conn.Disconnect()
End Try

この例では、マージ パブリケーションを削除します。

           // Define the Publisher, publication database, 
            // and publication names.
            string publisherName = publisherInstance;
            string publicationName = "AdvWorksSalesOrdersMerge";
            string publicationDbName = "AdventureWorks2012";

            MergePublication publication;
            ReplicationDatabase publicationDb;

            // Create a connection to the Publisher.
            ServerConnection conn = new ServerConnection(publisherName);

            try
            {
                // Connect to the Publisher.
                conn.Connect();

                // Set the required properties for the merge publication.
                publication = new MergePublication();
                publication.ConnectionContext = conn;
                publication.Name = publicationName;
                publication.DatabaseName = publicationDbName;

                // Delete the publication, if it exists and has no subscriptions.
                if (publication.LoadProperties() && !publication.HasSubscription)
                {
                    publication.Remove();
                }
                else
                {
                    // Do something here if the publication does not exist
                    // or has subscriptions.
                    throw new ApplicationException(String.Format(
                        "The publication {0} could not be deleted. " +
                        "Ensure that the publication exists and that all " +
                        "subscriptions have been deleted.",
                        publicationName, publisherName));
                }

                // If no other merge publications exists,
                // disable publishing on the database.
                publicationDb = new ReplicationDatabase(publicationDbName, conn);
                if (publicationDb.LoadProperties())
                {
                    if (publicationDb.MergePublications.Count == 0 && publicationDb.EnabledMergePublishing)
                    {
                        publicationDb.EnabledMergePublishing = false;
                    }
                }
                else
                {
                    // Do something here if the database does not exist.
                    throw new ApplicationException(String.Format(
                        "The database {0} does not exist on {1}.",
                        publicationDbName, publisherName));
                }
            }
            catch (Exception ex)
            {
                // Implement application error handling here.
                throw new ApplicationException(String.Format(
                    "The publication {0} could not be deleted.",
                    publicationName), ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Define the Publisher, publication database, 
' and publication names.
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2012"

Dim publication As MergePublication
Dim publicationDb As ReplicationDatabase

' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Set the required properties for the merge publication.
    publication = New MergePublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' Delete the publication, if it exists and has no subscriptions.
    If (publication.LoadProperties() And Not publication.HasSubscription) Then
        publication.Remove()
    Else
        ' Do something here if the publication does not exist
        ' or has subscriptions.
        Throw New ApplicationException(String.Format( _
         "The publication {0} could not be deleted. " + _
         "Ensure that the publication exists and that all " + _
         "subscriptions have been deleted.", _
         publicationName, publisherName))
    End If

    ' If no other merge publications exists,
    ' disable publishing on the database.
    publicationDb = New ReplicationDatabase(publicationDbName, conn)
    If publicationDb.LoadProperties() Then
        If publicationDb.MergePublications.Count = 0 _
        And publicationDb.EnabledMergePublishing Then
            publicationDb.EnabledMergePublishing = False
        End If
    Else
        ' Do something here if the database does not exist.
        Throw New ApplicationException(String.Format( _
         "The database {0} does not exist on {1}.", _
         publicationDbName, publisherName))
    End If
Catch ex As Exception
    ' Implement application error handling here.
    Throw New ApplicationException(String.Format( _
     "The publication {0} could not be deleted.", _
     publicationName), ex)
Finally
    conn.Disconnect()
End Try

スレッド セーフ

この型の public static (Visual Basic では Shared) のメンバーはすべて、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

関連項目

参照

Microsoft.SqlServer.Replication 名前空間

その他の技術情報

パブリケーションを作成する方法 (RMO プログラミング)

パブリケーション プロパティの表示と変更の方法 (RMO プログラミング)