none
REPLICHE RRS feed

  • 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.

    venerdì 10 febbraio 2012 13:57

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:

    http://social.msdn.microsoft.com/Forums/en/sqlreplication/thread/2514ceae-3aee-4290-a744-0d61f4e8cbed

    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
    venerdì 10 febbraio 2012 14:18

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:

    http://social.msdn.microsoft.com/Forums/en/sqlreplication/thread/2514ceae-3aee-4290-a744-0d61f4e8cbed

    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
    venerdì 10 febbraio 2012 14:18
  • Grazie per la risposta in effetti utilizziamo sql 2005 quindi è proprio quello che cercavo.
    venerdì 10 febbraio 2012 17:45