1

使用 SQL Server Management Studio,很容易在 Replication 文件夹下的订阅者数据库上查看本地订阅列表。我的问题是如何以编程方式获取该列表。我知道我可以使用 RMO创建订阅。我想知道如何获取所有现有本地订阅的列表。

4

1 回答 1

1

Publication.EnumSubscriptions 方法返回订阅发布的订阅。这相当于执行 sp_helpsubscription 或 sp_helpmergesubscription。

您还可以连接到订阅服务器,获取ReplicationDatabaseCollection并枚举复制的数据库订阅。这是一个例子:

// Connect to the Subscriber
subscriberName = "SubscriberName";
subscriberConnection = new ServerConnection(subscriberName);
subscriberConnection.Connect();

// Get Subscriber replication databases
ReplicationServer subscriberServer = new ReplicationServer(subscriberConnection);
ReplicationDatabaseCollection subscriberReplicationDatabases = subscriberServer.ReplicationDatabases;

// Enumerate Subscriber replication databases
foreach (ReplicationDatabase subscriptionDatabase in subscriberReplicationDatabases)
{
    foreach (MergePullSubscription mergePullSubscription in subscriptionDatabase.MergePullSubscriptions)
    {
        // do something...
    }
}
于 2012-11-20T20:34:05.690 回答