SQL Server:订阅:如何知道表是否正在复制/订阅

Pos*_*sto 6 sql sql-server replication

在SQL Server中,在"订阅方"上,您如何知道表是否正在复制/订阅?

任何的想法?

Dam*_*ver 6

我不确定这是一个简单的答案,我认为答案可能会因复制类型而异.我想你可能不得不依靠启发式来回答它.

对于快照复制,我无法想到任何可以让游戏消失的东西.显然,复制表(例如MSreplication_objects)的存在告诉您复制正在数据库中进行,但据我所知,没有任何关于表的具体线索.

对于事务复制(非更新),您可以通过MSreplication_objects(将列出一些存储的proc)然后用于sys.sql_dependencies查找与这些相关的表

对于事务复制(更新),您可以查看MSsubscription_articles(或查找是否存在针对表的订阅更新触发器)

对于合并复制,您可以查看sysmergearticles,但您还必须查看sysmergesubscriptions以确定您是否在订阅方.


小智 5

转到订阅者数据库检查表dbo.MSreplication_subscriptions。如果数据库是subscriber,您将找到此表。另外,要查找文章,请在subscribed数据库中使用它

SELECT publisher,Publisher_Db,publication,article
FROM dbo.MSreplication_objects
Run Code Online (Sandbox Code Playgroud)