web-dev-qa-db-fra.com

Répertorie toutes les tables actuellement publiées pour la réplication MS-SQL

J'ai besoin d'obtenir une liste de toutes les tables publiées pour la réplication à partir des bases de données MS-SQL. Existe-t-il une procédure stockée système ou une requête que je pourrais exécuter pour générer une telle liste?

25
Scott Vercuski

Oui:

SELECT *
FROM sys.tables
WHERE is_replicated = 1

De MSDN pour le champ is_replicated:

1 = La table est publiée à l'aide de la réplication de cliché ou de la réplication transactionnelle.

37
AdaTheDev

Il est possible d'interroger la base de données distribution pour voir quels articles (tables/vues/objets ...) sont publiés et de quelle publication ils sont issus.

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];
17
AeroX