使用SQL Server Management Studio,可以轻松查看Replication文件夹下订阅者数据库中的本地订阅列表。我的问题是如何以编程方式获取该列表。我知道我可以使用RMO create a subscription。我想知道如何获取所有现有本地订阅的列表。
答案 0 :(得分:1)
Publication.EnumSubscriptions Method返回订阅发布的订阅。这相当于执行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...
}
}