Principale utente con più risposte
REPLICHE

Domanda
-
Esiste una procedura (script o query o ....) che mi permetta di sapere quali tabelle di un determinato DB non siano in replica?
l'esigenza nasce dal fatto che mi trovo a gestire all'incirca un centinaio di DB i quali sono tutti in replica transazionale o snatshot ma vengono di continuo modificate o aggiunte tabelle e questo comporta che spesso chi fà questo genere di interventi non si ricordi di metterle o rimetterle in replica. Quindi ho la necessità saltuariamente di verificare cosa non sia più in replica senza dover doverlo fare manualmente su ogni singola replica.
Risposte
-
Esiste una procedura (script o query o ....) che mi permetta di sapere quali tabelle di un determinato DB non siano in replica?
l'esigenza nasce dal fatto che mi trovo a gestire all'incirca un centinaio di DB i quali sono tutti in replica transazionale o snatshot ma vengono di continuo modificate o aggiunte tabelle e questo comporta che spesso chi fà questo genere di interventi non si ricordi di metterle o rimetterle in replica. Quindi ho la necessità saltuariamente di verificare cosa non sia più in replica senza dover doverlo fare manualmente su ogni singola replica.
Se stai usando una versione di SQL Server 2005 o superiore puoi usare la catalog view "sys.tables" e controllare il valore della colonna is_replicated, come descritto qui:
Se vuoi limitare la ricerca solo alle user table devi filtrare la colonna type per 'U', in questo modo:
SELECT SCHEMA_NAME(t.schema_id) AS [schema], t.name AS [table] FROM sys.tables AS t WHERE (t.type = 'U') AND (t.is_replicated = 0)
Ciao!Francesco Milano // .NET & SQL Server Consultant // blog // twitter
- Contrassegnato come risposta Anca Popa lunedì 13 febbraio 2012 08:36
Tutte le risposte
-
Esiste una procedura (script o query o ....) che mi permetta di sapere quali tabelle di un determinato DB non siano in replica?
l'esigenza nasce dal fatto che mi trovo a gestire all'incirca un centinaio di DB i quali sono tutti in replica transazionale o snatshot ma vengono di continuo modificate o aggiunte tabelle e questo comporta che spesso chi fà questo genere di interventi non si ricordi di metterle o rimetterle in replica. Quindi ho la necessità saltuariamente di verificare cosa non sia più in replica senza dover doverlo fare manualmente su ogni singola replica.
Se stai usando una versione di SQL Server 2005 o superiore puoi usare la catalog view "sys.tables" e controllare il valore della colonna is_replicated, come descritto qui:
Se vuoi limitare la ricerca solo alle user table devi filtrare la colonna type per 'U', in questo modo:
SELECT SCHEMA_NAME(t.schema_id) AS [schema], t.name AS [table] FROM sys.tables AS t WHERE (t.type = 'U') AND (t.is_replicated = 0)
Ciao!Francesco Milano // .NET & SQL Server Consultant // blog // twitter
- Contrassegnato come risposta Anca Popa lunedì 13 febbraio 2012 08:36
-