Condividi tramite


Procedura dettagliata: distribuzione delle modifiche di refactoring di un database

Aggiornamento: novembre 2007

Quando si utilizza Visual Studio Team System Database Edition, si modifica una rappresentazione non in linea del database. Per salvare le modifiche in un database attivo, è necessario generare e distribuire il progetto di database. Il processo è simile a quello di distribuzione delle modifiche in un database di sviluppo, in un database di test o in un database di produzione.

Nota:

Il processo di distribuzione è simile a tutti i tipi di database. La persona che esegue lo sviluppo, tuttavia, potrebbe essere diversa. In alcuni ambienti, ad esempio, solo gli amministratori del database hanno le autorizzazioni per la distribuzione nel database di produzione.

In una procedura dettagliata precedente, Procedura dettagliata: ridenominazione di una colonna di database, è stato illustrato come creare un progetto di database, importare lo schema del database Northwind e rinominare una colonna. In questa procedura dettagliata viene illustato come generare e distribuire tale modifica.

Prerequisiti

Per completare questa procedura dettagliata, è necessario:

Per generare il progetto di database

  1. Aprire il progetto di database, denominato RefactorNorthwind, creato in Procedura dettagliata: ridenominazione di una colonna di database.

  2. Scegliere Genera soluzione dal menu Genera.

  3. È possibile che nella finestra Elenco errori vengano visualizzati errori di generazione. Se una stored procedure seleziona una colonna senza qualificarla e successivamente tale colonna viene rinominata, il nome non verrà aggiornato nella stored procedure. Questa situazione determina un errore di generazione, poiché la stored procedure seleziona un nome di colonna che non esiste. Per impedire il verificarsi di questo tipo di errori, accertarsi che nel codice T-SQL (Transact-SQL) i nomi di colonna siano completi. Per risolvere questo tipo di errori, è necessario aggiornare manualmente il nome di colonna. Se ad esempio si rinomina la colonna Orders.ShippedDate in Orders.ShippedDateAndTime, è necessario aggiornare manualmente la stored procedure Sales by Year. Modificare la stored procedure seguente:

    create procedure "Sales by Year" 
        @Beginning_Date DateTime, @Ending_Date DateTime AS
    SELECT Orders.ShippedDateAndTime, Orders.OrderID, "Order Subtotals".Subtotal, DATENAME(yy, ShippedDate) AS Year
    FROM Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID
    WHERE Orders.ShippedDateAndTime Between @Beginning_Date And @Ending_Date
    

    in:

    create procedure "Sales by Year" 
        @Beginning_Date DateTime, @Ending_Date DateTime AS
    SELECT Orders.ShippedDateAndTime, Orders.OrderID, "Order Subtotals".Subtotal, DATENAME(yy, Orders.ShippedDateAndTime) AS Year
    FROM Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID
    WHERE Orders.ShippedDateAndTime Between @Beginning_Date And @Ending_Date
    

Per impostare le proprietà di distribuzione del progetto

  1. In Esplora soluzioni fare clic sul progetto di database RefactorNorthwind.

  2. Scegliere Proprietà RefactorNorthwind dal menu Progetto.

    Verranno visualizzate le proprietà del progetto.

  3. Fare clic sulla scheda Genera.

  4. Scegliere il pulsante con l'etichetta ... per visualizzare la finestra di dialogo Proprietà connessione.

  5. Impostare le proprietà di connessione per il database che si desidera utilizzare, quindi scegliere OK.

    Nella casella Connessione di destinazione verrà inserita la stringa di connessione corretta.

    Attenzione:

    È necessario eseguire il test di questa distribuzione in un database di test o di sviluppo. Il test della distribuzione non deve essere eseguito nel database di produzione.

  6. Digitare il nome del database di destinazione nella casella Nome database di destinazione.

    Attenzione:

    Per impostazione predefinita, nella casella Nome database di destinazione viene inserito il nome del progetto di database. Se il nome del progetto di database non è il nome del database di destinazione, è necessario modificare questo campo.

  7. Selezionare la casella di controllo Genera istruzioni DROP per oggetti contenuti nel database di destinazione, ma non nel progetto di database. Questa casella di controllo è importante, ad esempio, quando si rinomina una tabella. Lo script di distribuzione generato conterrà un'istruzione DROP per la tabella con il nome precedente e un'istruzione CREATE TABLE per la tabella con il nuovo nome. Per impedire che la tabella con il nome precedente venga eliminata, è possibile deselezionare la casella di controllo Genera istruzioni DROP per oggetti contenuti nel database di destinazione, ma non nel progetto di database. Questo è uno dei vari approcci che consentono di prevenire una possibile perdita di dati in questa situazione. Per ulteriori informazioni, vedere Protezione dei dati durante un'operazione di ridenominazione.

  8. Scegliere Salva tutto dal menu File.

  9. Scegliere Genera soluzione dal menu Genera.

    Lo script di distribuzione verrà generato in base alle proprietà del progetto appena impostate. Lo stato della generazione verrà visualizzato nella finestra di Output e nell'ultima riga dovrebbe essere visualizzato il messaggio Generazione: 1 completate o aggiornate.

Per distribuire il progetto di database

  1. Scegliere Apri dal menu File e quindi scegliere File.

    Verrà visualizzata la finestra di dialogo Apri file.

  2. Nella casella Nome file, digitare l'indirizzo seguente e quindi scegliere Apri.

    NomePercorso\RefactorNorthwind\Sql\RefactoringDeploy.NomeServer.Northwind.sql

  3. Nello script di distribuzione cercare le righe seguenti:

    DROP TABLE [dbo].[Orders]

    e

    CREATE TABLE [dbo].[Orders]

    Queste righe corrispondono alla modifica di refactoring apportata nella procedura dettagliata precedente. A questo punto, è possibile modificare lo script di distribuzione. È possibile, ad esempio, eliminare le istruzioni DROP che non si desidera distribuire. Per ulteriori informazioni, vedere Protezione dei dati durante un'operazione di ridenominazione. Ai fini di questa procedura dettagliata, è possibile lasciare invariato lo script di distribuzione.

    Attenzione:

    Se si modifica lo script di distribuzione, sarà necessario distribuirlo manualmente, eseguendolo dall'Editor T-SQL. Non è possibile distribuirlo tramite il comando di distribuzione.

  4. Chiudere lo script di distribuzione.

  5. Scegliere Esplora server dal menu Visualizza.

    Verrà visualizzata la finestra Esplora server e in Connessioni dati verrà visualizzato il database di destinazione. Se il database di destinazione non viene visualizzato, scegliere Connetti al database dal menu Strumenti per aggiungere una connessione al database di destinazione.

  6. In Esplora server, espandere il database di destinazione, il nodo Tabelle e infine la tabella Orders.

    Verrà visualizzata la colonna ShippedDate con il nome originale.

  7. In Esplora soluzioni fare clic sul progetto di database RefactorNorthwind.

  8. Scegliere Distribuisci dal menu Genera. È inoltre possibile fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e quindi scegliere Distribuisci.

    Attenzione:

    È necessario eseguire la distribuzione in un database di test o di sviluppo. La distribuzione non deve essere eseguita nel database di produzione.

    Il progetto di database verrà distribuito nel database di destinazione tramite lo script di distribuzione. Lo stato della distribuzione verrà visualizzato nella finestra di Output e nell'ultima riga dovrebbe essere visualizzato il messaggio Distribuzione completata.

  9. In Esplora server fare clic con il pulsante destro del mouse sul nodo Tabelle e quindi scegliere Aggiorna.

    Verrà visualizzata la colonna ShippedDate con il nuovo nome ShippedDateAndTime.

Vedere anche

Concetti

Panoramica delle impostazioni del progetto di database

Altre risorse

Refactoring di database

Generazione e distribuzione di schemi di database