Как определить, поддерживает ли SQL Server репликацию - PullRequest
0 голосов
/ 30 августа 2011

У меня есть пользовательский интерфейс, для которого нужно отключить определенные части, если SQL Server, к которому он подключается, не поддерживает репликацию и какие типы репликации он поддерживает (снимок, слияние, транзакция). Я просмотрел документ для функции SERVERPROPERTY, но не увидел ничего, что выглядело так, как будто это то, что мне было нужно. Какие-либо предложения?

Примечание. Желательно не прибегать к включению Edition.

Ответы [ 3 ]

0 голосов
/ 30 августа 2011

Вы можете попытаться настроить репликацию, используя объекты Microsoft.SqlServer.Replication namespace в блоке Try Catch. Если это бомбы, отключите часть репликации вашего приложения.

0 голосов
/ 07 октября 2011

Похоже, что нет простого способа определить, поддерживается ли репликация, однако можно определить, реплицируется ли база данных:

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

Это примерно так близко, как я могуЯ думаю.

0 голосов
/ 30 августа 2011

Даже если экземпляр SQL Server способен выполнять репликацию, он все еще не уверен, настроен ли он и активен ли он у администратора.

При всех этих неопределенностях наиболее полезным решением для приложения является определение флага в одной из таблиц вашего приложения, указывающего, должна ли быть включена логика, связанная с репликацией. Это также упрощает тестирование системы.

...