Condividi tramite


Procedura: distribuire modifiche in un database nuovo o esistente

Dopo avere apportato modifiche al progetto di database, è necessario distribuirle al server database. Quando si distribuisce il progetto di database, lo schema definito nel progetto di database viene confrontato con lo schema di destinazione per identificare il set di azioni da effettuare per sincronizzare gli schemi. Tali azioni sono combinate con lo script pre-distribuzione e lo script post-distribuzione per formare uno script di distribuzione completo. Se il database di destinazione non esiste o si è scelto di ricreare sempre il database, lo schema definito nel file dbschema viene utilizzato per creare il database. Quando si crea un nuovo database, lo script di distribuzione tenterà di eliminare un database esistente con lo stesso nome, se presente. Se il progetto di database, le relative proprietà o il contenuto sono stati modificati dopo l'ultima compilazione o distribuzione, viene generato un file con estensione dbschema aggiornato durante la compilazione del progetto.

In un ambiente di produzione, non è consigliabile eseguire direttamente la distribuzione al database di destinazione. Occorre, viceversa, generare lo script di distribuzione (file SQL), rivederlo e aggiornarlo, se necessario, quindi distribuirlo mediante l'editor Transact-SQL. In alternativa, è anche possibile utilizzare uno strumento quale SQL Server Management Studio.

È inoltre possibile distribuire il database tramite lo strumento VSDBCMD.EXE. È possibile specificare il file dbschema da utilizzare per distribuire il database. È possibile utilizzare VSDBCMD per eseguire la distribuzione da un computer su cui non è installato Visual Studio. Per ulteriori informazioni, vedere Procedura: preparare un database per la distribuzione da un prompt dei comandi tramite VSDBCMD.EXE.

Nota importanteImportante

Prima di distribuire il progetto di database, è necessario impostarne le proprietà per specificare il nome del database e la connessione al database di destinazione. Se il progetto di database è stato generato utilizzando la Creazione guidata nuovo progetto di database, è possibile che le proprietà del progetto siano già state specificate. È possibile modificare in qualsiasi momento le proprietà del progetto. Per ulteriori informazioni vedere Procedura: configurare le proprietà di database dei progetti di database.

Autorizzazioni necessarie

È necessario disporre delle autorizzazioni necessarie per creare il database (per nuove distribuzioni) e creare, modificare ed eliminare gli oggetti dello schema in quel database per distribuire il progetto di database.

Distribuzione a un singolo database

È possibile distribuire il database utilizzando Visual Studio da un prompt dei comandi o eseguendo lo script di distribuzione in un editor Transact-SQL. È possibile utilizzare l'editor Transact-SQL disponibile in Visual Studio oppure uno strumento quale SQL Server Management Studio.

Per distribuire il progetto di database in un database nuovo o esistente

  1. In Esplora soluzioni fare clic sul progetto di database che si desidera distribuire.

    Se è stata creata una configurazione personalizzata, è possibile selezionarla per l'utilizzo facendo clic sul relativo nome nell'elenco Configurazioni soluzione sulla barra degli strumenti Standard. Per impostazione predefinita, è disponibile una sola configurazione per il progetto di database, già selezionata.

  2. Scegliere Distribuisci dal menu Compila.

    L'output di compilazione per il progetto di database verrà generato, se non esiste o se non è aggiornato, e quindi distribuito. Nella finestra Output vengono visualizzati i risultati della distribuzione nel formato seguente:

    NomeProgetto -> D:\Documents and Settings\NomeUtente\Documenti\Visual Studio 2008\Projects\NomeSoluzione\NomeProgetto\sql\NomeProgetto.dbschema

    ------ Inizio distribuzione: Progetto: NomeProgetto, Configurazione: Debug|Any CPU ------

    Script di distribuzione NomeProgetto.sql generato

    Creazione di NomeProgetto

    Creazione di dbo.NomeOggetto

    .

    .

    .

    .

    ========== Compilazione: 1 completate o aggiornate, 0 non riuscite, 0 ignorate ==========

    ========== Distribuzione: 1 completate o aggiornate, 0 non riuscite, 0 ignorate ==========

Per distribuire il progetto di database in un database nuovo o esistente dalla riga di comando

  1. Aprire la finestra Prompt dei comandi quindi passare alla directory di progetto.

  2. Al prompt dei comandi digitare la riga di comando di esempio seguente per distribuire un progetto di database (dove DatabaseProject è il nome del progetto):

    MSBuild /t:Build;Deploy DatabaseProject.dbproj

    Nota

    MSBuild.exe deve trovarsi nel percorso specificato dalla variabile di ambiente PATH. È inoltre necessario specificare il database di destinazione e la stringa di connessione di destinazione nel progetto di database o nella riga di comando. Per ulteriori informazioni sulla sintassi della riga di comando per la generazione di script di compilazione, vedere Cenni preliminari sui processi di compilazione e distribuzione di database.

    Verranno visualizzati risultati analoghi a quanto segue:

    Microsoft (R) Build Engine Version 3.5.21022.8

    [Microsoft .NET Framework, Version 2.0.50727.1433]

    Copyright (C) Microsoft Corporation 2007. All rights reserved.

    Build started 5/20/2008 1:36:58 PM.

    Project "UnitàProgetto:\Documents and Settings\NomeUtente\My Documents\Visual Studio 2008\Projects\NomeSoluzione\NomeProgetto\NomeProgetto.dbproj" on node 0 (Deploy target(s)).

    Project "UnitàProgetto:\Documents and Settings\NomeUtente\My Documents\Visual Studio 2008\Projects\NomeSoluzione\NomeProgetto\NomeProgetto.dbproj" (1) is building "UnitàProgetto:\Documents and Settings\NomeUtente\My Documents\Visual Studio 2008\Projects\NomeSoluzione\NomeProgetto\sql\NomeProgetto.deploymanifest" (2) on node 0 (DspDeploy target(s)).

    Deployment script ProjectName.sql generated

    :

    (1 row(s) affected)

    Done Building Project "UnitàProgetto:\Documents and Settings\NomeUtente\My Documents\Visual Studio 2008\Projects\NomeSoluzione\NomeProgetto\sql\NomeProgetto.deploymanifest" (DspDeploy

    target(s)).

    Done Building Project "UnitàProgetto:\Documents and Settings\NomeUtente\My Documents\Visual Studio 2008\Projects\NomeSoluzione\NomeProgetto\NomeProgetto.dbproj" (Deploy target(s)).

    Build succeeded.

    0 Warning(s)

    0 Error(s)

    Time Elapsed 00:00:07.32

Per distribuire il database eseguendo lo script di distribuzione

  1. Aprire lo script di distribuzione nell'editor Transact-SQL desiderato.

    Nota

    In questa procedura si presuppone che si utilizza Transact-SQL fornito con Visual Studio.

    Lo script di distribuzione compilato viene denominato NomeProgetto.sql e si trova nella cartella NomeSoluzione\NomeProgetto\sql\Configurazione. Configurazione è il nome della configurazione della compilazione, ad esempio Debug o Rilascio.

  2. Nella barra dei menu scegliere Dati, Editor Transact-SQL, Modalità SQLCMD, se non è già abilitata.

    Nota importanteImportante

    Se la modalità SQLCMD non è abilitata, si verificheranno errori durante l'esecuzione dello script di distribuzione in quanto le istruzioni :setvar non sono supportate.

  3. Nella barra dei menu scegliere Dati, Editor Transact-SQL, Esegui SQL per eseguire lo script di distribuzione. Quando viene richiesto, specificare le informazioni di connessione per il server in cui si desidera distribuire.

    Lo script di distribuzione viene eseguito e il database verrà creato.

Distribuzione in più database o server

È possibile distribuire lo schema in più database o server. Se la distribuzione viene eseguita in un numero ridotto di server o database che non subiscono modifiche (ad esempio, nel server di sviluppo personale e in un server di gestione temporanea), è possibile creare più configurazioni della build. Ogni configurazione della build può avere un server o un database di destinazione diverso. Se è necessario eseguire la distribuzione in un numero maggiore di server o se i nomi del server o del database di destinazione vengono modificati regolarmente, è necessario adottare un approccio diverso. Di seguito vendono descritti i possibili approcci.

Per creare più configurazioni della build ed eseguire la distribuzione in più server o database

  1. Aprire il progetto di database in Visual Studio.

  2. Scegliere Gestione configurazione dal menu Compila.

    Verrà visualizzata la finestra di dialogo Gestione configurazione.

  3. Nell'elenco Configurazione soluzione attiva fare clic su <Nuova>.

    Verrà visualizzata la finestra di dialogo Nuova configurazione soluzione.

  4. In Nome digitare il nome della prima configurazione server.

  5. Se nella configurazione predefinita sono già state configurate proprietà di progetto, fare clic su Predefinito nell'elenco Copia impostazioni da.

  6. Scegliere OK.

  7. Nella casella di riepilogo Configurazione soluzione attiva fare clic su <Nuova>.

    Verrà visualizzata la finestra di dialogo Nuova configurazione soluzione.

  8. In Nome digitare il nome della seconda configurazione server.

  9. Se nella configurazione predefinita sono già state configurate proprietà di progetto, fare clic su Predefinito nell'elenco Copia impostazioni da.

    Nota

    È inoltre possibile configurare il nome del database e la stringa di connessione per ogni configurazione denominata.

  10. Fare clic su Chiudi.

  11. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto di database e quindi scegliere Proprietà.

  12. Fare clic sulla scheda Compilazione.

  13. In Configurazione fare clic sul nome della prima configurazione server.

  14. Modificare la connessione di destinazione e il nome del database in modo che corrispondano alla prima configurazione server.

  15. In Configurazione fare clic sul nome della seconda configurazione server.

  16. Modificare la connessione di destinazione e il nome del database in modo che corrispondano alla seconda configurazione server.

  17. Scegliere Salva elementi selezionati dal menu File per salvare le impostazioni di configurazione.

    A questo punto è possibile specificare una configurazione sulla barra degli strumenti Standard e quindi compilare o distribuire tale configurazione.

Per eseguire la distribuzione nei database dalla riga di comando mediante MSBuild

  • Nella finestra del prompt dei comandi distribuire lo script di compilazione digitando la riga di comando seguente. Sostituire il nome del server e la configurazione di destinazione con i valori appropriati.

    MSBuild /t:Deploy /p:Configuration=ConfigurazioneDestinazione NomeProgettoDatabase.dbproj

    Nota

    Per eseguire la distribuzione in più server, è necessario eseguire l'override della proprietà della stringa di connessione di destinazione specificando quanto segue nella finestra del prompt dei comandi /p:TargetConnectionString="Data Source=NomeServer;Integrated Security=True;Pooling=False". È possibile definire una configurazione per ogni server di destinazione e quindi specificare la configurazione che si desidera distribuire.

Per distribuire un progetto di database da un prompt dei comandi mediante VSDBCMD

  • Nota importanteImportante

    In questa procedura si presuppone che si siano già copiati i file necessari nel computer da cui si intende eseguire VSDBCMD. Per ulteriori informazioni, vedere Procedura: preparare un database per la distribuzione da un prompt dei comandi tramite VSDBCMD.EXE.

    Aprire una finestra del prompt dei comandi e digitare la riga di comando seguente:

     VSDBCMD /a:Deploy /dd:+ /manifest:manifestFileName.dbmanifest
    

    Il manifesto di distribuzione fornisce le altre impostazioni, ad esempio nome del database di destinazione, la stringa di connessione e così via, che sarebbe altrimenti possibile specificare nella riga di comando.

Vedere anche

Attività

Procedura: compilare un progetto di database per generare un file di schema compilato (con estensione dbschema)

Procedura dettagliata: distribuzione delle modifiche a un database esistente con controllo della versione

Concetti

Cenni preliminari sui processi di compilazione e distribuzione di database

Panoramica delle impostazioni del progetto di database

Cronologia delle modifiche

Data

Cronologia

Motivo

Giugno 2010

Per soddisfare i commenti e suggerimenti dei clienti, è stata rivista l'introduzione e sono state aggiunte ulteriori informazioni sulla distribuzione mediante VSDBCMD.

Commenti e suggerimenti dei clienti.

Maggio 2011

È stata aggiunta la procedura in cui viene illustrato come eseguire uno script di distribuzione nell'editor Transact-SQL.

Commenti e suggerimenti dei clienti.