列出当前为复制MS-SQL发布的所有表

时间:2010-03-29 17:15:28

标签: sql-server tsql replication publish-subscribe

我需要获取从MS-SQL数据库发布以进行复制的所有表的列表。是否有系统存储过程或我可以运行的查询来生成这样的列表?

2 个答案:

答案 0 :(得分:32)

是:

SELECT *
FROM sys.tables
WHERE is_replicated = 1

MSDN获取is_replicated字段:

  

1 =使用快照发布表   复制或事务   复制。

答案 1 :(得分:16)

可以查询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];