Condividi tramite


Procedura: distribuire modifiche in un database nuovo o esistente

Aggiornamento: novembre 2007

Dopo avere apportato modifiche al progetto di database, è necessario distribuirle nel server di database eseguendo uno script di generazione. Quando si genera lo script di generazione, lo schema del progetto di database viene confrontato al database di destinazione specificato nelle proprietà del progetto. Se il database di destinazione esiste, viene creato uno script di aggiornamento, a meno che non si sia scelto di ricreare sempre il database. Se il database di destinazione non esiste o si è scelto di ricreare sempre il database, lo script di generazione crea un database. Se sono state apportate modifiche al progetto di database o alle relative proprietà o contenuto dall'ultima distribuzione o generazione, verrà generato uno script di generazione aggiornato alla successiva distribuzione del progetto.

Nota importante:

Prima di generare o 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 i progetti di database per la generazione e la distribuzione.

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

    Verrà generato, e quindi distribuito, lo script di generazione per il progetto di database, se non esiste o se non è aggiornato. Nella finestra Output vengono visualizzati i risultati della distribuzione nel formato seguente:

------ Inizio distribuzione: ProgettoDatabase, Configurazione: Default Any CPU ------

Generazione dello script di distribuzione per NomeDatabaseDestinazione : EnableFullTextSearch, BlockIncrementalDeploymentIfDataLoss

ProgettoDatabase --> file:///UnitàProgetto:/Documents%20and%20Settings/NomeUtente/%20Documenti/Visual%20Studio%202005/Projects/NomeSoluzione/ProgettoDatabase/sql/ProgettoDatabase.NomeServerDestinazione_NomeIstanzaDestinazione.NomeDatabaseDestinazione.sql

------ Inizio distribuzione: Progetto ProgettoDatabase, Configurazione: Default Any CPU ------

Distribuzione dello script UnitàProgetto:\Documents and Settings\NomeUtente\Documenti\Visual Studio 2005\Projects\NomeSoluzione\ProgettoDatabase\sql\ProgettoDatabase.NomeServerDestinazione_NomeIstanzaDestinazione.NomeDatabaseDestinazione.sql nel server NomeServerDestinazione\NomeIstanzaDestinazione

file:///UnitàProgetto:/Documents%20and%20Settings/NomeUtente/%20Documenti/Visual%20Studio%202005/Projects/NomeSoluzione/ProgettoDatabase/sql/ProgettoDatabase.NomeServerDestinazione_NomeIstanzaDestinazione.NomeDatabaseDestinazione.sql --> Server:"NomeServerDestinazione\NomeIstanzaDestinazione", Database:"NomeDatabaseDestinazione"

========== Generazione: 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 una finestra Prompt dei comandi.

  2. Selezionare la directory del progetto.

  3. Al prompt dei comandi digitare la riga di comando di esempio seguente per generare uno script di generazione in cui ProgettoDatabase è il nome del progetto:

    MSBuild /t:Build ProgettoDatabase.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 generazione, vedere Cenni preliminari sui processi di generazione e distribuzione di database.

    Vengono visualizzati i risultati nel formato seguente:

Microsoft (R) Build Engine Version 3.5.20418.0

[Microsoft .NET Framework, Version 2.0.50727.1318]

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

Build started 5/3/2007 2:27:39 PM.

__________________________________________________

Project "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2005\Projects\SolutionName\ProgettoDatabase\ProgettoDatabase.dbproj" (Build target(s)):

Target SqlBuild:

Building deployment script for NomeDatabaseDestinazione : EnableFullTextSearch, BlockIncrementalDeploymentIfDataLoss

. ProgettoDatabase --> file:///UnitàProgetto:/Documents%20and%20Settings/UserName/My%20Documen

ts/Visual%20Studio%202005/Projects/SolutionName/ProgettoDatabase/sql/ProgettoDatabase.NomeServerDestinazione_NomeIstanzaDestinazione.NomeDatabaseDestinazione.sql

Build succeeded.

0 Warning(s)

0 Error(s)

Time Elapsed 00:00:05.01

  1. Al prompt dei comandi digitare la riga di comando di esempio seguente per distribuire lo script di generazione creato nel passaggio 3:

    MSBuild /t:Deploy ProgettoDatabase.dbproj

    Verrannoo visualizzat risultati analoghi al seguente:

    Microsoft (R) Build Engine Version 3.5.20418.0

    [Microsoft .NET Framework, Version 2.0.50727.1318]

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

    Build started 5/3/2007 2:27:39 PM.

    __________________________________________________

    Project "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2005\Projects\SolutionName\ProgettoDatabase\ProgettoDatabase.dbproj" (Deploy target(s)):

    Target SqlDeploy:

    Deploying script UnitàProgetto:\Documents and Settings\UserName\My Documents\Visual Studio 2005\Projects\SolutionName\ProgettoDatabase\sql\ProgettoDatabase.NomeServerDestinazione_NomeIstanzaDestinazione.NomeDatabaseDestinazione.sql to server NomeServerDestinazione\NomeIstanzaDestinazione

    file:///UnitàProgetto:/Documents%20and%20Settings/UserName/My%20Documents/Visual%20Studio%202005/Projects/SolutionName/ProgettoDatabase/sql/ProgettoDatabase.NomeServerDestinazione_NomeIstanzaDestinazione.NomeDatabaseDestinazione.sql --> Server:"NomeServerDestinazione\NomeIstanzaDestinazione", Database:"NomeDatabaseDestinazione"

    Build succeeded.

    0 Warning(s)

    0 Error(s)

    Time Elapsed 00:00:02.56

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 di generazione. Ogni configurazione di generazione 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 di generazione ed eseguire la distribuzione in più server o database

  1. Aprire il progetto di database in Visual Studio Team System Database Edition.

  2. Scegliere Gestione configurazione dal menu Genera.

    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.

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

  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 generare o distribuire tale configurazione.

Per eseguire la distribuzione nei database dalla riga di comando

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

    MSBuild /t:Deploy /p:TargetDatabase=NomeDatabaseDestinazione /p:BuildScriptName=ScriptCompilazione.sql 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".

Sicurezza

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

Vedere anche

Attività

Procedura: preparare script di generazione database

Concetti

Cenni preliminari sui processi di generazione e distribuzione di database

Panoramica delle impostazioni del progetto di database

Panoramica sulla terminologia di Database Edition

Altre risorse

Procedure dettagliate (creazione e aggiornamento di schemi di database con controllo delle versioni)