2010-03-29 18 views

Odpowiedz

27

Tak:

SELECT * 
FROM sys.tables 
WHERE is_replicated = 1 

Z MSDN dla pola is_replicated:

1 = Stół opublikowane za pomocą migawki replikacji lub transakcji replikacji.

+1

Zależy to od zastosowanego typu replikacji. Aby uzyskać migawkę, konieczne może być sprawdzenie is_published = 1. MSDN: https://social.msdn.microsoft.com/Forums/sqlserver/en-US/3333c691-4426-476c-b7c4-f8f55068937a/difference-between-ispublished-and -isreplicated-columns-of-systables? forum = sqlreplication – Zeeshan

+0

Mogę potwierdzić, że na serwerze SQL 2014/2016 (nie mam do testowania wczesnej wersji), dla replikacji snapshot, [is_replicated] nie określa, czy tabela jest replikowana czy nie. Musisz użyć [is_published] = 1, aby znaleźć tabelę replikacji migawek. – jyao

13

Możliwe jest zapytanie do bazy danych distribution, aby zobaczyć, jakie artykuły (tabele/widoki/obiekty ...) są publikowane i z której publikacji pochodzą.

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]; 
+1

Działa na SQL Server 2008 – Michael

+0

Przydaje się zapytanie o encje [dystrybucji]. A jeśli twoje artykuły są w tym samym DB (przynajmniej wszystkie, które chcesz zidentyfikować), możesz dołączyć do tych DB [dbName] .sys.tables/objects/etc. widoki meta-danych, aby wyświetlić jeszcze więcej informacji na ich temat, np. "jaki typ obiektu to jest" (ponieważ można mieć więcej niż tylko replikowanie tabel), lub nawet "która kolumna jest PK". Postaram się zamieścić więcej informacji na ten temat, gdy będę miał szansę. – NateJ

Powiązane problemy