Перечислите все таблицы, которые в настоящее время опубликованы для репликации MS-SQL - PullRequest
23 голосов
/ 29 марта 2010

Мне нужно получить список всех таблиц, опубликованных для репликации из баз данных MS-SQL. Существует ли системная хранимая процедура или запрос, который я мог бы выполнить для создания такого списка?

Ответы [ 2 ]

32 голосов
/ 29 марта 2010

Да

SELECT *
FROM sys.tables
WHERE is_replicated = 1

С MSDN для поля is_replicated:

1 = таблица публикуется с использованием снимка репликация или транзакционный репликация.

16 голосов
/ 16 мая 2014

Можно запросить базу данных distribution, чтобы узнать, какие статьи (таблицы / представления / объекты ...) опубликованы и из какой они публикации.

SELECT
     P.[publication]   AS [Publication Name]
    ,A.[publisher_db]  AS [Database Name]
    ,A.[article]       AS [Article Name]
    ,A.[source_owner]  AS [Schema]
    ,A.[source_object] AS [Object]
FROM
    [distribution].[dbo].[MSarticles] AS A
    INNER JOIN [distribution].[dbo].[MSpublications] AS P
        ON (A.[publication_id] = P.[publication_id])
ORDER BY
    P.[publication], A.[article];
...