T-SQL查找是否在事务复制中的订阅服务器上订阅了数据库

Afr*_*roz 5 sql-server sql-server-2008 transactional-replication

T-SQL查找是否在事务复制中的订阅服务器上订阅了数据库.我不想查询分发的详细信息.

以下不起作用.

SELECT is_subscribed FROM sys.databases

SELECT DATABASEPROPERTYEX('database', 'IsSubscribed')
Run Code Online (Sandbox Code Playgroud)

Afr*_*roz 8

到目前为止,这是我发现的最佳方式,但我不确定这是否适用于非事务复制.

SELECT COALESCE(OBJECTPROPERTY(OBJECT_ID('dbo.MSreplication_objects'), 'IsMSShipped'),0) AS IsSubscribed
Run Code Online (Sandbox Code Playgroud)

要么

SELECT name
FROM sys.databases
WHERE OBJECT_ID(name+'.dbo.MSreplication_objects') IS NOT NULL
Run Code Online (Sandbox Code Playgroud)