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?
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.
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];