Procedura: confrontare e sincronizzare i dati di due database

Le informazioni contenute in questo argomento sono valide per:

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional 

Visual Studio Express

Argomento applicabile Argomento applicabile Argomento non applicabile Argomento non applicabile

Utilizzando Visual Studio, è possibile confrontare i dati contenuti in due database. I database confrontati sono noti come origine e destinazione.

Nota

I progetti di database e i progetti del livello applicazione dati non contengono dati. Di conseguenza, né l'uno né l'altro tipo di progetto può essere l'origine o la destinazione in un confronto di dati. Allo stesso modo, anche i file con estensione dbschema e dacpac non contengono dati e non possono essere l'origine o la destinazione in un confronto di dati.

Quando vengono confrontati i dati, viene creato uno script DML (Data Manipulation Language) che è possibile utilizzare per sincronizzare i diversi database aggiornando parzialmente o totalmente i dati nel database di destinazione. Al termine del confronto dei dati, i risultati verranno visualizzati nella finestra Confronto dati di Visual Studio.

Al termine del confronto, è possibile eseguire altre operazioni:

  • È possibile visualizzare le differenze tra i due database. Per ulteriori informazioni, vedere Visualizzazione delle differenze dei dati.

  • È possibile aggiornare parzialmente o totalmente il database di destinazione affinché corrisponda a quello di origine. Per ulteriori informazioni, vedere Sincronizzazione dei dati di database.

Per ulteriori informazioni, vedere Confrontare e sincronizzare i dati in una o più tabelle e i dati di un database di riferimento.

Nota

È inoltre possibile confrontare lo schema di due database o di due versioni dello stesso database. Per ulteriori informazioni, vedere Procedura: confrontare gli schemi di database.

Confronto di dati di database

Per confrontare i dati mediante la procedura guidata Nuovo confronto dati

  1. Scegliere Confronto dati dal menu Dati e quindi Nuovo confronto dati.

    Verrà visualizzata la procedura guidata Nuovo confronto dati. Verrà inoltre aperta la finestra Confronto dati alla quale Visual Studio assegna automaticamente un nome, ad esempio DataCompare1.

  2. Identificare i database di origine e destinazione.

    Se l'elenco Database di origine o Database di destinazione è vuoto, scegliere Nuova connessione. Nella finestra di dialogo Proprietà connessione, identificare il server in cui risiede il database e il tipo di autenticazione da utilizzare per la connessione al database. Fare quindi clic su OK per chiudere la finestra di dialogo Proprietà connessione e tornare alla procedura guidata Confronto dati.

    Nella prima pagina della procedura guidata Confronto dati, verificare che le informazioni per ogni database siano corrette, specificare i record che si desidera includere nei risultati e quindi scegliere Avanti. Verrà visualizzata la seconda pagina della procedura guidata Confronto dati in cui è contenuto un elenco gerarchico delle tabelle e delle visualizzazioni nel database.

  3. Selezionare le caselle di controllo per le tabelle e le visualizzazioni che si desidera confrontare. Se lo si ritiene opportuno, espandere i nodi per gli oggetti di database e quindi selezionare le caselle di controllo per le colonne all'interno di tali oggetti che si desidera confrontare.

    Nota

    Tabelle e visualizzazioni devono soddisfare due criteri per essere incluse nell'elenco. In primo luogo, gli schemi degli oggetti dei database di origine e destinazione devono corrispondere. Inoltre, solo le tabelle e le visualizzazioni che dispongono di una chiave primaria, ovvero univoca, o un indice vengono visualizzate nell'elenco. Se nessuna tabella o visualizzazione soddisfa entrambi i criteri, l'elenco sarà vuoto.

  4. Se è presente più di una chiave, è possibile utilizzare la colonna Chiave di confronto per specificare la chiave su cui basare il confronto dei dati. È possibile, ad esempio, specificare se basare il confronto sulla colonna chiave primaria o su un'altra colonna chiave (identificabile in modo univoco).

  5. Scegliere Fine.

    Verrà avviato il confronto.

    Nota

    È possibile interrompere un'operazione di confronto dei dati in corso scegliendo Confronto dati dal menu Dati e quindi facendo clic su Interrompi confronto dati.

    Al termine del confronto, sarà possibile visualizzare le differenze dei dati tra i due database. Sarà inoltre possibile aggiornare parzialmente o totalmente i dati nel database di destinazione affinché corrispondano ai dati nel database di origine.

Per confrontare dati tramite il modello di automazione di Visual Studio

  1. Scegliere Altre finestre dal menu Visualizza e fare clic su Finestra di comando.

  2. In Finestra di comando, digitare il comando seguente:

    Data.NewDataComparison /SrcServerName sServerName /SrcDatabaseName sDatabaseName /SrcUserName sUserName /SrcPassword sPassword /SrcDisplayName sDisplayName /TargetServerName tServerName /TargetDatabaseName tDatabaseName /TargeUserName tUserName /TargetPassword tPassword /TargetDisplayName tDisplayName
    

    Sostituire i segnaposti (sServerName, sDatabaseName, sUserName, sPassword, sDisplayName, tServerName, tDatabaseName, tUserName, tPassword, e tDisplayName) con i valori relativi ai database di origine e di destinazione.

    Se non si specificano un database di origine e un database di destinazione, viene visualizzata la finestra di dialogo Nuovo confronto dati. Per ulteriori informazioni sui parametri del comando Data.NewDataComparison, vedere Tabella di riferimento dei comandi di automazione per le funzionalità di database di Visual Studio.

    I dati nel database di origine e nel database di destinazione specificati vengono confrontati. I risultati verranno visualizzati in una sessione di Confronto dati. Per ulteriori informazioni su come visualizzare risultati o sincronizzare i dati, vedere Visualizzazione delle differenze dei dati e Sincronizzazione dei dati di database.

Visualizzazione delle differenze dei dati

Dopo aver confrontato i dati di due database, nel confronto dei dati viene elencato ogni oggetto di database confrontato insieme al relativo stato. È anche possibile visualizzare i risultati relativi ai record all'interno di ogni oggetto, raggruppati in base allo stato. Per ulteriori informazioni sulle designazioni dello stato, vedere Confrontare e sincronizzare i dati in una o più tabelle e i dati di un database di riferimento.

Dopo aver visualizzato le differenze, è possibile aggiornare la destinazione affinché corrisponda all'origine per alcuni o tutti gli oggetti o record che risultano diversi, mancanti o nuovi. Per ulteriori informazioni, vedere Sincronizzazione dei dati di database.

Per visualizzare le differenze dei dati

  1. Confrontare i dati in un database di origine e uno di destinazione. Per ulteriori informazioni, vedere Confrontare i dati di database.

  2. (Facoltativo) Effettuare una o entrambe le operazioni seguenti:

    • Per impostazione predefinita, vengono visualizzati i risultati relativi a tutti gli oggetti, indipendentemente dallo stato. Per visualizzare solo gli oggetti con un determinato stato, fare clic su un'opzione nell'elenco Filtro.

    • Per visualizzare i risultati relativi ai record in un determinato oggetto, fare clic sull'oggetto nel riquadro principale dei risultati, quindi fare clic su una scheda nel riquadro in cui sono visualizzati i record. In ogni scheda vengono visualizzati tutti i record all'interno dell'oggetto identificati da un determinato stato: Record diversi, Solo nell'origine, Solo nella destinazione e Record identici. I dati vengono visualizzati in base al record e alla colonna.

Sincronizzazione dei dati di database

Dopo avere confrontato i dati di due database, è possibile sincronizzarli aggiornando, interamente o in parte, la destinazione in base all'origine. È possibile confrontare i dati in due tipi di oggetti di database: tabelle e viste.

Per aggiornare i dati di destinazione utilizzando il comando Scrivi aggiornamenti

  1. Confrontare i dati in un database di origine e uno di destinazione. Per ulteriori informazioni, vedere Confrontare i dati di database.

    Al termine del confronto, nella finestra Confronto dati verranno elencati i risultati per gli oggetti confrontati. Le informazioni sugli oggetti non identici vengono visualizzate in quattro colonne, ovvero Record diversi, Solo nell'origine, Solo nella destinazione e Record identici. Per ogni oggetto, queste colonne indicano il numero di record diversi trovati e quanti verrebbero modificati tramite un'operazione di aggiornamento. Questi due numeri inizialmente corrispondono, ma al passaggio 4 è possibile cambiare gli oggetti da aggiornare.

    Per ulteriori informazioni, vedere Confrontare e sincronizzare i dati in una o più tabelle e i dati di un database di riferimento.

  2. Nella tabella della finestra Confronto dati fare clic su una riga.

    Nel riquadro dettagli vengono visualizzati i risultati per i record dell'oggetto di database selezionato. I record sono raggruppati in base allo stato in schede che è possibile utilizzare per specificare i dati che verranno propagati dall'origine alla destinazione.

  3. Nel riquadro dettagli fare clic su una scheda il cui nome contenga un numero diverso da zero (0).

    La colonna Aggiorna della tabella Solo nella destinazione contiene caselle di controllo che è possibile utilizzare per selezionare le righe da aggiornare. Per impostazione predefinita, ogni casella di controllo è selezionata.

  4. Deselezionare le caselle di controllo per i record nella destinazione che non si desidera aggiornare con i dati dell'origine.

    Quando si deseleziona una casella di controllo, si riduce il numero di record da aggiornare e la visualizzazione cambia in base alle azioni eseguite. Questo numero viene visualizzato nella riga di stato del riquadro dei dettagli e nella colonna corrispondente del riquadro dei risultati principale, come illustrato al passaggio 1.

  5. (Facoltativo) Scegliere Esporta nell'Editor.

    Verrà visualizzata la finestra dell'editor Transact-SQL con lo script DML (Data Manipulation Language) da utilizzare per aggiornare la destinazione.

  6. Per sincronizzare i record diversi, mancanti o nuovi, scegliere Scrivi aggiornamenti.

    Nota

    Durante l'aggiornamento del database di destinazione, è possibile annullare l'operazione scegliendo Interrompi scrittura sulla destinazione.

    I dati dei record selezionati nella destinazione vengono aggiornati in base ai dati dei record corrispondenti nell'origine.

    Nota

    Se si decide di aggiornare le visualizzazioni indicizzate, l'operazione Scrivi aggiornamenti potrebbe non riuscire qualora comportasse l'inserimento di chiavi duplicate nella stessa tabella.

Per aggiornare i dati della destinazione tramite uno script Transact-SQL

  1. Confrontare i dati in un database di origine e uno di destinazione. Per ulteriori informazioni, vedere Confrontare i dati di database.

    Al termine del confronto, gli oggetti confrontati vengono elencati nella finestra Confronto dati. Per ulteriori informazioni, vedere Confrontare e sincronizzare i dati in una o più tabelle e i dati di un database di riferimento.

  2. (Facoltativo) Nel riquadro dettagli deselezionare le caselle di controllo per i record della destinazione che non si desidera aggiornare, come illustrato in precedenza.

  3. Scegliere Esporta nell'Editor.

    In una nuova finestra viene visualizzato lo script Transact-SQL che consente di propagare le modifiche necessarie per fare in modo che i dati della destinazione corrispondano a quelli dell'origine. Alla nuova finestra viene assegnato un nome quale Server.Database - DataUpdate_Database _1.sql.

    Questo script riflette le modifiche apportate nel riquadro dettagli. Se ad esempio è stata deselezionata una casella di controllo per una determinata riga nella pagina Solo nella destinazione per la tabella [dbo].[Shippers], quella riga non viene aggiornata dallo script.

  4. (Facoltativo) Modificare lo script nella finestra Server.Database - DataUpdate_Database _1.sql.

  5. (Facoltativo, ma consigliato) Eseguire il backup del database di destinazione.

  6. Scegliere Esegui SQL o premere F5 per aggiornare il database di destinazione.

    Specificare una connessione al database di destinazione che si desidera aggiornare.

    Nota importanteImportante

    Per impostazione predefinita, gli aggiornamenti vengono eseguiti nell'ambito di una transazione. Se si verificano degli errori, è possibile ripristinare l'intero aggiornamento. Questo comportamento può essere modificato. Per ulteriori informazioni, vedere Procedura: impostare le opzioni per il confronto dei dati del database.

    I dati dei record selezionati nella destinazione vengono aggiornati in base ai dati dei record corrispondenti nell'origine.

Vedere anche

Attività

Procedura: confrontare gli schemi di database

Concetti

Confrontare e sincronizzare i dati in una o più tabelle e i dati di un database di riferimento