Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di Azure
Istanza gestita di Azure SQL
Database SQL in Microsoft Fabric
Gli strumenti di confronto dello schema consentono di confrontare due definizioni di database. È possibile usare qualsiasi combinazione di database connesso, progetto di database SQL o .dacpac file come origine e destinazione del confronto. Al termine del confronto, i risultati sono visualizzati come un set di azioni che rendono la destinazione uguale all'origine. Le differenze tra i modelli di database vengono visualizzate in modo simile a quello di un diff del controllo del codice sorgente. Se la destinazione di confronto dello schema è un progetto SQL o un database, è possibile aggiornare la destinazione direttamente dall'interfaccia di confronto dello schema o generare uno script di aggiornamento con lo stesso effetto.
Confronto schema offre le funzionalità seguenti:
- Confrontare gli schemi tra due
.dacpacfile, database o progetti SQL. - Visualizzare i risultati come set di azioni in modo che corrispondano a una destinazione rispetto all'origine.
- Escludere selettivamente le azioni elencate nei risultati.
- Impostare le opzioni che controllano l'ambito del confronto.
- Applicare le modifiche direttamente alla destinazione o generare uno script per applicare le modifiche in un secondo momento.
- Salva il confronto.
Functionality
Le differenze tra l'origine e la destinazione sono visualizzate in una griglia per facilitarne la revisione. È possibile confrontare in entrambe le direzioni un modello di database derivato da una delle opzioni seguenti:
- banca dati connessa
- Progetto di database SQL
- File
.dacpac
Nel confronto dello schema, puoi analizzare ed esaminare ogni differenza nella griglia dei risultati o in forma di script, dove i dettagli delle modifiche sono disponibili a livello di riga. È anche possibile escludere in modo selettivo differenze specifiche prima di aggiornare la destinazione. Gli strumenti di confronto dello schema sono disponibili in Visual Studio, Visual Studio Code e nella riga di comando.
Opzioni di confronto dello schema
Le opzioni di confronto dello schema sono basate sulle opzioni di distribuzione disponibili nella libreria di .NET DacFx. Tali opzioni includono:
- Ignora spazi vuoti
- Ignorare gli schemi di partizione
- Ignorare l'ordine delle colonne
- Eliminare gli indici non nell'origine
- Blocca la possibile perdita di dati
È anche possibile configurare i tipi di oggetto inclusi nel confronto. Questi oggetti includono tabelle, stored procedure, indici, autorizzazioni, tipi definiti dall'utente e altro ancora.
File di confronto degli schemi
È possibile salvare la definizione di confronto per il confronto dello schema come .scmp file, noto come file di confronto dello schema. Questo file archivia informazioni sul confronto dello schema in XML e include:
- Informazioni sulla connessione di origine e destinazione
- Opzioni di confronto
- Tipi di oggetto esclusi
È possibile aprire un .scmp file in Visual Studio per eseguire nuovamente lo stesso confronto in un secondo momento o per condividere il confronto con altri utenti.
Avviare e utilizzare la comparazione dello schema
Nel menu Strumenti in Visual Studio selezionare SQL Server e quindi selezionare Nuovo confronto schemi.
In alternativa, fare clic con il pulsante destro del mouse sul progetto TradeDev in Esplora soluzioni e selezionare Confronto schema.
Verrà visualizzata la finestra Confronto schema e Visual Studio assegna automaticamente un nome, ad esempio
SqlSchemaCompare1.Vengono visualizzati due elenchi a discesa con una freccia verde tra di loro proprio sotto la barra degli strumenti Confronto schemi. Questi menu consentono di selezionare le definizioni di database per l'origine e la destinazione del confronto.
Nell'elenco a discesa Seleziona origine, scegliere Seleziona origine e si aprirà la finestra di dialogo Seleziona schema di origine.
Se si apre la finestra Confronto schema facendo clic con il pulsante destro del mouse sul nome del progetto, lo schema di origine è già popolato ed è possibile procedere con il passaggio 4.
Completare le selezioni per un'origine di confronto dello schema scegliendo un file Project, connessione al database o .dacpac. L'origine è la definizione del database che si vuole usare come base per le modifiche apportate alla destinazione.
Nell'elenco a discesa Seleziona destinazione nella finestra Confronto schema scegliere Seleziona destinazione. Verrà visualizzata la finestra di dialogo Seleziona schema di destinazione . Completare le selezioni per una destinazione di confronto dello schema scegliendo un file Project, connessione al database o .dacpac . La destinazione è la definizione del database a cui si desidera valutare e potenzialmente applicare le modifiche.
Selezionare Opzioni dalla barra degli strumenti Finestra confronto schema per specificare quali oggetti vengono confrontati, quali tipi di differenze vengono ignorati e altre impostazioni.
Selezionare il pulsante Confronta nella barra degli strumenti della finestra Confronto schema per avviare il processo di confronto.
Al termine del confronto, le differenze strutturali tra il progetto e il database verranno visualizzate nel riquadro dei risultatinella parte superiore della finestra. Per impostazione predefinita, i risultati del confronto vengono raggruppati in base all'azione , ad esempio Elimina, Modifica o Aggiungi. Nel riquadro dei risultativiene visualizzata una riga per ogni oggetto di database che presenta differenze tra le definizioni di database. Ogni riga identifica l'oggetto nello schema di origine o di destinazione (o entrambi) e l'azione da intraprendere sullo schema di destinazione per rendere l'oggetto di destinazione uguale a quello di origine. Se un oggetto è stato sottoposto a refactoring e rinominato o spostato in un nuovo schema, i nomi di origine e di destinazione sono differenti e il nome dell'origine verrà visualizzato in carattere grassetto per evidenziare la differenza.
Per impostazione predefinita, l'elenco dei risultati nasconde gli oggetti uguali in entrambi gli schemi o che non sono supportati per l'aggiornamento, ad esempio oggetti predefiniti. Selezionare le opzioni di filtro appropriate nella barra degli strumenti per visualizzare questi oggetti.
Per modificare la preferenza di raggruppamento, selezionare l’elenco a discesa Risultati del gruppo nella barra degli strumenti. Selezionare Tipo per raggruppare i risultati per tipo di oggetto (ad esempio, per tabelle, viste o procedure memorizzate).
Per impostazione predefinita, tutte le differenze vengono incluse nell'ambito dell'azione Aggiorna destinazione. È possibile escludere le differenze che non si desidera sincronizzare. A tale scopo, deselezionare l'opzione nella colonna Azione al centro di ogni riga. In alternativa, fare clic con il pulsante destro del mouse su una riga nel riquadro Schema e selezionare Escludi. La riga viene immediatamente resa grigia. Quando Schema Compare è usato per aggiornare il database di destinazione, questa riga non è inclusa per le modifiche in sospeso.
È inoltre possibile fare clic con il pulsante destro del mouse sulla riga di un gruppo e selezionare Escludi tutto o Includi tutto, che equivale a deselezionare o selezionare tutte le differenze presenti in quel gruppo. Quando si raggruppano i risultati in base allo schema, fare clic con il pulsante destro del mouse sulla riga del gruppo è un modo utile per includere o escludere tutte le modifiche apportate a uno schema specifico.
Se per la riga esclusa sono presenti oggetti dipendenti (ad esempio, una riga di una tabella a cui fa riferimento una riga di una vista), la riga esclusa verrà disabilitata ma la casella di controllo corrispondente non verrà deselezionata. Una volta deselezionate tutte le righe dipendenti, la riga disabilitata è deselezionata. Inoltre, se una riga è stata sottoposta a refactoring (rinominata o spostata in un altro schema), la casella di controllo viene disabilitata per quella riga e per tutte le righe figlio dipendenti.
Se si aggiorna il confronto, le differenze che si è scelto di ignorare vengono ignorate.
Per aggiornare lo schema della destinazione, sono disponibili due opzioni. È possibile aggiornare direttamente la destinazione dalla finestra Confronto schema se la destinazione è un progetto o un database oppure generare uno script di aggiornamento se la destinazione è un database o un file di database. Uno script generato viene visualizzato nell'editor di Transact-SQL, da cui è possibile esaminare lo script ed eseguirlo su un database.
Note
Il confronto dello schema grafico è disponibile parzialmente nell'anteprima dei progetti SQL in stile SDK in Visual Studio. I confronti dello schema sono disponibili per database e .dacpac file connessi, i progetti di database SQL non sono ancora disponibili.
Nel menu Strumenti in Visual Studio selezionare SQL Server e quindi selezionare Nuovo confronto schemi.
In alternativa, fare clic con il pulsante destro del mouse sul progetto TradeDev in Esplora soluzioni e selezionare Confronto schema.
Verrà visualizzata la finestra Confronto schema e Visual Studio assegna automaticamente un nome, ad esempio
SqlSchemaCompare1.Vengono visualizzati due elenchi a discesa con una freccia verde tra di loro proprio sotto la barra degli strumenti Confronto schemi. Questi menu consentono di selezionare le definizioni di database per l'origine e la destinazione del confronto.
Nell'elenco a discesa Seleziona origine, scegliere Seleziona origine e si aprirà la finestra di dialogo Seleziona schema di origine.
Se si apre la finestra Confronto schema facendo clic con il pulsante destro del mouse sul nome del progetto, lo schema di origine è già popolato ed è possibile procedere con il passaggio 4.
Completare le selezioni per un'origine di confronto dello schema scegliendo un file Project, connessione al database o .dacpac. L'origine è la definizione del database che si vuole usare come base per le modifiche apportate alla destinazione.
Nell'elenco a discesa Seleziona destinazione nella finestra Confronto schema scegliere Seleziona destinazione. Verrà visualizzata la finestra di dialogo Seleziona schema di destinazione . Completare le selezioni per una destinazione di confronto dello schema scegliendo un file Project, connessione al database o .dacpac . La destinazione è la definizione del database a cui si desidera valutare e potenzialmente applicare le modifiche.
Selezionare Opzioni dalla barra degli strumenti Finestra confronto schema per specificare quali oggetti vengono confrontati, quali tipi di differenze vengono ignorati e altre impostazioni.
Selezionare il pulsante Confronta nella barra degli strumenti della finestra Confronto schema per avviare il processo di confronto.
Al termine del confronto, le differenze strutturali tra il progetto e il database verranno visualizzate nel riquadro dei risultatinella parte superiore della finestra. Per impostazione predefinita, i risultati del confronto vengono raggruppati in base all'azione , ad esempio Elimina, Modifica o Aggiungi. Nel riquadro dei risultativiene visualizzata una riga per ogni oggetto di database che presenta differenze tra le definizioni di database. Ogni riga identifica l'oggetto nello schema di origine o di destinazione (o entrambi) e l'azione da intraprendere sullo schema di destinazione per rendere l'oggetto di destinazione uguale a quello di origine. Se un oggetto è stato sottoposto a refactoring e rinominato o spostato in un nuovo schema, i nomi di origine e di destinazione sono differenti e il nome dell'origine verrà visualizzato in carattere grassetto per evidenziare la differenza.
Per impostazione predefinita, l'elenco dei risultati nasconde gli oggetti uguali in entrambi gli schemi o che non sono supportati per l'aggiornamento, ad esempio oggetti predefiniti. Selezionare le opzioni di filtro appropriate nella barra degli strumenti per visualizzare questi oggetti.
Per modificare la preferenza di raggruppamento, selezionare l’elenco a discesa Risultati del gruppo nella barra degli strumenti. Selezionare Tipo per raggruppare i risultati per tipo di oggetto (ad esempio, per tabelle, viste o procedure memorizzate).
Per impostazione predefinita, tutte le differenze vengono incluse nell'ambito dell'azione Aggiorna destinazione. È possibile escludere le differenze che non si desidera sincronizzare. A tale scopo, deselezionare l'opzione nella colonna Azione al centro di ogni riga. In alternativa, fare clic con il pulsante destro del mouse su una riga nel riquadro Schema e selezionare Escludi. La riga viene immediatamente resa grigia. Quando Schema Compare è usato per aggiornare il database di destinazione, questa riga non è inclusa per le modifiche in sospeso.
È inoltre possibile fare clic con il pulsante destro del mouse sulla riga di un gruppo e selezionare Escludi tutto o Includi tutto, che equivale a deselezionare o selezionare tutte le differenze presenti in quel gruppo. Quando si raggruppano i risultati in base allo schema, fare clic con il pulsante destro del mouse sulla riga del gruppo è un modo utile per includere o escludere tutte le modifiche apportate a uno schema specifico.
Se per la riga esclusa sono presenti oggetti dipendenti (ad esempio, una riga di una tabella a cui fa riferimento una riga di una vista), la riga esclusa verrà disabilitata ma la casella di controllo corrispondente non verrà deselezionata. Una volta deselezionate tutte le righe dipendenti, la riga disabilitata è deselezionata. Inoltre, se una riga è stata sottoposta a refactoring (rinominata o spostata in un altro schema), la casella di controllo viene disabilitata per quella riga e per tutte le righe figlio dipendenti.
Se si aggiorna il confronto, le differenze che si è scelto di ignorare vengono escluse.
Per aggiornare lo schema della destinazione, sono disponibili due opzioni. È possibile aggiornare direttamente la destinazione dalla finestra Confronto schema se la destinazione è un progetto o un database oppure generare uno script di aggiornamento se la destinazione è un database o un file di database. Uno script generato viene visualizzato nell'editor di Transact-SQL, da cui è possibile esaminare lo script ed eseguirlo su un database.
Altre informazioni dettagliate sul confronto degli schemi in Visual Studio Code sono disponibili nell'articolo Confronto schema
In Visual Studio Code nel riquadro comandi (
ctrl/cmd+shift+P), cercare e selezionare MSSQL: Confronto schema.In alternativa, fare clic con il pulsante destro del mouse su un progetto di database nella vista Progetti di database o in un database in Esplora oggetti e selezionare Confronto schema.
Viene visualizzata la finestra Confronto schema e un'origine o una destinazione potrebbe essere preimpostata in base al punto di avvio.
Vengono visualizzati due pulsanti di ellissi con una freccia tra di loro proprio sotto la barra degli strumenti Confronto schemi. Questi menu consentono di selezionare le definizioni di database per l'origine e la destinazione del confronto.
Se si selezionano i puntini di sospensione per l'origine o la destinazione, viene aperta una finestra di dialogo in cui è possibile aggiornarli. Completare le selezioni per un'origine di confronto dello schema scegliendo un file Project, connessione al database o .dacpac. L'origine è la definizione del database che si vuole usare come base per le modifiche apportate alla destinazione. La destinazione è la definizione del database a cui si desidera valutare e potenzialmente applicare le modifiche.
Al termine delle selezioni, selezionare OK per chiudere la finestra di dialogo e tornare alla finestra Confronto schema.
È inoltre possibile selezionare il pulsante Opzioni nella barra degli strumenti della finestra Confronto schema per specificare quali oggetti vengono confrontati, quali tipi di differenze vengono ignorate e altre impostazioni.
Selezionare il pulsante Confronta nella barra degli strumenti della finestra Confronto schema per avviare il processo di confronto.
Al termine del confronto, le differenze strutturali tra il progetto e il database verranno visualizzate nel riquadro dei risultatinella parte superiore della finestra. Per impostazione predefinita, i risultati del confronto vengono raggruppati in base all'azione , ad esempio Elimina, Modifica o Aggiungi. Nel riquadro dei risultativiene visualizzata una riga per ogni oggetto di database che presenta differenze tra le definizioni di database. Ogni riga identifica l'oggetto nello schema di origine o di destinazione (o entrambi) e l'azione da intraprendere sullo schema di destinazione per rendere l'oggetto di destinazione uguale a quello di origine. Se un oggetto è stato sottoposto a refactoring e rinominato o spostato in un nuovo schema, i nomi di origine e di destinazione sono differenti e il nome dell'origine verrà visualizzato in carattere grassetto per evidenziare la differenza.
Per impostazione predefinita, tutte le differenze vengono incluse nell'ambito dell'azione Aggiorna destinazione. È possibile escludere le differenze che non si desidera sincronizzare. A tale scopo, deselezionare l'opzione nella colonna Azione al centro di ogni riga. Quando si usa il confronto dello schema per aggiornare il database di destinazione, questa riga non viene considerata per le modifiche in sospeso.
Se per la riga esclusa sono presenti oggetti dipendenti (ad esempio, una riga di una tabella a cui fa riferimento una riga di una vista), la riga esclusa verrà disabilitata ma la casella di controllo corrispondente non verrà deselezionata. Una volta deselezionate tutte le righe dipendenti, la riga disabilitata è deselezionata. Inoltre, se una riga è stata sottoposta a refactoring (rinominata o spostata in un altro schema), la casella di controllo viene disabilitata per quella riga e per tutte le righe figlio dipendenti.
Se si aggiorna il confronto, le differenze che si è scelto di ignorare vengono escluse.
Per aggiornare lo schema della destinazione, sono disponibili due opzioni. È possibile aggiornare direttamente la destinazione dalla finestra Confronto schema con il pulsante Applica se la destinazione è un progetto o un database oppure generare uno script di aggiornamento se la destinazione è un database con il pulsante Genera script. Uno script generato viene visualizzato nell'editor di Transact-SQL, da cui è possibile esaminare lo script ed eseguirlo su un database.
In SQL Server Management Studio è possibile usare lo strumento Confronto schema per confrontare database, progetti o file con estensione dacpac.
In SQL Server Management Studio connettersi al database da confrontare.
Nella Esplora oggetti fare clic con il pulsante destro del mouse sul database e selezionare Confronto schema attività>(anteprima).
Nella finestra Confronto schema completare le selezioni per una destinazione di confronto dello schema scegliendo un Project, una connessione al database o un file con estensione dacpac.
Selezionare Confronta per avviare il confronto.
Al termine del confronto, le differenze strutturali tra il progetto e il database verranno visualizzate nel riquadro dei risultatinella parte superiore della finestra. Per impostazione predefinita, i risultati del confronto vengono raggruppati in base all'azione , ad esempio Elimina, Modifica o Aggiungi. Nel riquadro dei risultativiene visualizzata una riga per ogni oggetto di database che presenta differenze tra le definizioni di database. Ogni riga identifica l'oggetto nello schema di origine o di destinazione (o entrambi) e l'azione da intraprendere sullo schema di destinazione per rendere l'oggetto di destinazione uguale a quello di origine. Se un oggetto è stato sottoposto a refactoring e rinominato o spostato in un nuovo schema, i nomi di origine e di destinazione sono differenti e il nome dell'origine verrà visualizzato in carattere grassetto per evidenziare la differenza.
Per impostazione predefinita, tutte le differenze vengono incluse nell'ambito dell'azione Aggiorna destinazione. È possibile escludere le differenze che non si desidera sincronizzare. A tale scopo, deselezionare la colonna Includi di ogni riga. Quando si usa il confronto dello schema per aggiornare il database di destinazione, questa riga non viene considerata per le modifiche in sospeso.
Se per la riga esclusa sono presenti oggetti dipendenti (ad esempio, una riga di una tabella a cui fa riferimento una riga di una vista), la riga esclusa verrà disabilitata ma la casella di controllo corrispondente non verrà deselezionata. Una volta deselezionate tutte le righe dipendenti, la riga disabilitata è deselezionata.
Se si aggiorna il confronto, le differenze che si è scelto di ignorare vengono escluse.
Per aggiornare lo schema della destinazione, sono disponibili due opzioni. È possibile aggiornare direttamente la destinazione dalla finestra Confronto schema con il pulsante Applica se la destinazione è un progetto o un database oppure generare uno script di aggiornamento se la destinazione è un database con il pulsante Genera script. Uno script generato viene visualizzato nell'editor di Transact-SQL, da cui è possibile esaminare lo script ed eseguirlo su un database.
Confronto schema è disponibile in SQL Server Management Studio, Visual Studio o tramite l'estensione MSSQL per Visual Studio Code.