如何确定SQL Server是否支持复制

时间:2011-08-29 20:38:22

标签: sql-server replication

我有一个UI,如果它连接的SQL Server不支持复制以及它支持哪些类型的复制(快照,合并,事务),则需要禁用某些部分。我查看了SERVERPROPERTY函数的文档,但没有看到任何看起来像我需要的东西。有什么建议?

注意 - 最好不要诉诸于打开版本。

3 个答案:

答案 0 :(得分:0)

即使SQL Server实例能够进行复制,仍然无法确定它是否已配置,以及管理员是否将其激活。

对于所有这些不确定性,最有用的应用程序解决方案是在应用程序的一个表中定义一个标志,指示是否应启用与复制相关的逻辑。这也使系统测试变得简单。

答案 1 :(得分:0)

您可以尝试使用Try Catch块中Microsoft.SqlServer.Replication namespace的对象设置复制。如果它被炸弹,则禁用应用程序的复制部分。

答案 2 :(得分:0)

所以看起来没有简单的方法来确定是否支持复制,但是,可以确定是否正在复制数据库:

SELECT name, CASE WHEN is_published = 1 OR is_merge_published = 1 OR is_distributor = 1 THEN 1 ELSE 0 END AS uses_replication FROM sys.databases

这就像我想的那样接近。