Проверьте, включена ли репликация - PullRequest
1 голос
/ 08 ноября 2011

Какой самый простой способ проверить, включена ли репликация в формате, совместимом с SQL 2000, 2005 и 2008? Не нужно никакой информации о состоянии ... просто чтобы узнать, включена ли она для БД. Мне это нужно, потому что я хочу, чтобы мой код переноса базы данных выдавал исключение, если репликация включена, прежде чем он попытается выполнить обновления схемы.

Спасибо.

Ответы [ 3 ]

6 голосов
/ 19 апреля 2013

Я нашел этот запрос, но он работает только в SQL 2005 и более поздних версиях (не для SQL 2000 verson).

Запрос T-SQL

  select name, is_published, is_subscribed, is_merge_published, is_distributor
  from sys.databases
  where is_published = 1 or is_subscribed = 1 or
  is_merge_published = 1 or is_distributor = 1
0 голосов
/ 28 июля 2015

От: www.mssqlinsider.com / 2013/09 / check-database-part-replication :

SELECT 
    name as [Database name],
    CASE is_published 
        WHEN 0 THEN 'No' 
        ELSE 'Yes' 
        END AS [Is Published],
    CASE is_merge_published 
        WHEN 0 THEN 'No' 
        ELSE 'Yes' 
        END AS [Is Merge Published],
    CASE is_distributor 
        WHEN 0 THEN 'No' 
        ELSE 'Yes' 
        END AS [Is Distributor],
    CASE is_subscribed 
        WHEN 0 THEN 'No' 
        ELSE 'Yes' 
        END AS [Is Subscribed]
FROM sys.databases
WHERE database_id > 4
0 голосов
/ 08 ноября 2011

В этой статье MSDN говорит: «Когда пользовательская база данных настроена как издатель или подписчик, репликация добавляет системные таблицы в базу данных. Эти таблицы удаляются при удалении пользовательской базы данных изтопология репликации "

Вы можете посмотреть на существование одной из этих таблиц, перечисленных в статье, как доказательство репликации, и соответственно выполнить свой запрос.

...