5

T-SQL per trovare se un Sottoscrittore di database è iscritto nella replica transazionale. Non voglio interrogare la distribuzione per i dettagli.T-SQL per individuare se un database è stato sottoscritto nel Sottoscrittore nella replica transazionale

Quanto segue non funziona.

SELECT is_subscribed FROM sys.databases 

SELECT DATABASEPROPERTYEX('database', 'IsSubscribed') 
+0

http://social.msdn.microsoft.com/Forums/en-US/sqlreplication/thread/5914a9bd-bbc2-4d8f-b961-86ba0c1a0cb8 ​​ – bummi

+0

"Si può prendere uno sguardo alla tabella MSsubscriptions del database di distribuzione, questo potrebbe funzionare per voi .... "Vorrei interrogare il Sottoscrittore per questa informazione non Distributore. – Afr

+0

Non ho familiarità con questa funzione, potrebbe essere utile sp_MSenumsubscriptions – bummi

risposta

7

Finora questo è il modo migliore che ho trovato, ma non sono sicuro che funzioni in Replica non transazionale.

SELECT COALESCE(OBJECTPROPERTY(OBJECT_ID('dbo.MSreplication_objects'), 'IsMSShipped'),0) AS IsSubscribed 

O

SELECT name 
FROM sys.databases 
WHERE OBJECT_ID(name+'.dbo.MSreplication_objects') IS NOT NULL 
+0

La seconda opzione ha funzionato meglio per me. Bella scoperta! – NateJ