有没有人知道我可以运行的查询,它会告诉我目标数据库中的哪些文章(如果有的话)与事务复制发布相关联?
答案 0 :(得分:10)
对于需要快速摘要的人......
SELECT
msp.publication AS PublicationName,
msa.publisher_db AS DatabaseName,
msa.article AS ArticleName,
msa.source_owner AS SchemaName,
msa.source_object AS TableName
FROM distribution.dbo.MSarticles msa
JOIN distribution.dbo.MSpublications msp ON msa.publication_id = msp.publication_id
ORDER BY
msp.publication,
msa.article
答案 1 :(得分:6)
查看syspublications以查看发布者数据库上设置的发布列表。希望您能够看到一个具有标识您感兴趣的订阅者数据库的描述。请注意您感兴趣的出版物的pubid:
select * from syspublications
然后查看sysarticles以查看哪些表实际复制到该端点:
select * from sysarticles where pubid = 3
这需要在发布者数据库上运行,而不是在订阅者数据库上运行。
答案 2 :(得分:5)
以下是涉及SQL Server复制的所有表
http://msdn.microsoft.com/en-us/library/ms179855.aspx
向下滚动到“订阅数据库中的复制表”部分,您将找到发布,订阅,模式,文章和列的表。
答案 3 :(得分:3)
EXEC sp_helparticle @publication='{your_publication_name}'
显示有关文章的信息。此存储过程在发布数据库上的发布服务器上执行。对于Oracle发布服务器,此存储过程在任何数据库的分发服务器上执行。
答案 4 :(得分:0)
对于那些希望列出 MERGE REPLICATION 文章的人,以下代码段可能有所帮助:
SELECT
p.Name,
a.*
FROM [Publisher_DB_NAME].dbo.sysmergepublications p
JOIN [Publisher_DB_NAME].dbo.sysmergearticles a on p.pubid=a.pubid
请注意,发布服务器数据库中会查询sysmergepublications
和sysmergearticles
个表,因为MSpublications
数据库中的MSarticles
和distribution
表在我的其他答案中提到了SQL Server 2008 R2的案例没有合并复制文章的记录。
希望这可以帮助那些使用SO搜索进行合并复制的人。
答案 5 :(得分:0)
SELECT
p.Name,
a.*
FROM dbo.sysmergepublications p
JOIN dbo.[sysmergeextendedarticlesview] a on p.pubid=a.pubid
您也可以使用它来获取视图列表