Share via


Procedura dettagliata: esecuzione dello sviluppo iterativo di database in un ambiente di sviluppo isolato

In Procedura dettagliata: creazione di un ambiente di sviluppo isolato viene illustrato come un amministratore di database crea un progetto di database e importa le definizioni di schema e oggetto di database da un server di produzione. Nella seconda procedura dettagliata viene illustrato come creare unit test del database per verificare la funzionalità esistente e stabilire una linea di base pulita.

In questa procedura dettagliata, la terza e ultima della serie, viene illustrato come eseguire una tipica attività di distribuzione iterativa, ovvero la ridenominazione di due colonne di database. Queste modifiche vengono apportate in un ambiente di sviluppo isolato per ridurre al minimo i rischi per gli altri membri del team, finché non si è pronti a condividere le modifiche.

Tra le attività illustrate in questa procedura dettagliata sono incluse le seguenti:

  1. Come utilizzare il refactoring del database per ridenominare colonne, ridurre il tempo necessario per aggiornare tutti i riferimenti alle colonne e diminuire le probabilità di errore.

  2. Come eseguire unit test del database per verificare che le modifiche non interferiscano con le funzionalità esistenti.

  3. Come archiviare le modifiche nel controllo delle versioni per renderle disponibili agli altri membri del team.

Prerequisiti

È necessario avere installato Visual Studio Premium o Visual Studio Ultimate e disporre dell'accesso al database di esempio AdventureWorks2008 per SQL Server 2008. In questa procedura dettagliata, inoltre, si presuppone che siano state completate le procedure dettagliate Procedura dettagliata: creazione di un ambiente di sviluppo isolato e Procedura dettagliata: creazione di una linea di base per l'ambiente di sviluppo isolato.

Rinominare colonne di database

Un'attività di sviluppo tipica prevede la ridenominazione di oggetti di database. In questa procedura dettagliata la colonna BusinessEntityID nella tabella [HumanResources].[Employee] viene denominata BusinessEntityNumber. Alla colonna BusinessEntityID fanno riferimento varie chiavi esterne e stored procedure. Per apportare manualmente la modifica, è necessario modificare più file.

Prima di apportare le modifiche, è necessario verificare di disporre della versione più recente del progetto di database.

Per ottenere la versione più recente del progetto di database

  1. In Team Explorer espandere il nodo Progetto Team che contiene il progetto di database.

  2. Aprire Esplora controllo del codice sorgente facendo doppio clic sul nodo Controllo codice sorgente.

  3. In Esplora controllo del codice sorgente fare clic con il pulsante destro del mouse sul progetto di database e scegliere Leggi ultima versione.

    Viene recuperata la versione più recente della soluzione che contiene il progetto di database.

Per rinominare BusinessEntityID in BusinessEntityNumber

  1. Se la soluzione AdvWorksSandbox è aperta in Esplora soluzioni, andare al passaggio 4.

  2. Scegliere Apri dal menu File e quindi Progetto/Soluzione.

    Verrà visualizzata la finestra di dialogo Apri progetto.

  3. Selezionare la soluzione AdvWorksSandbox e quindi scegliere Apri. Per impostazione predefinita, questa soluzione si trova in Documenti\Visual Studio 2005\Projects\AdvWorksSandbox.

    La soluzione AdvWorksSandbox verrà aperta in Esplora soluzioni.

  4. Scegliere Visualizzazione schema dal menu Visualizza.

  5. Nella finestra Visualizzazione schema espandere il nodo AdvWorksSandbox, espandere lo schema HumanResources e quindi espandere la cartella Tabelle.

  6. Nella cartella Tabelle espandere la tabella Employee e quindi espandere la cartella Colonne.

  7. Fare clic con il pulsante destro del mouse sulla cartella BusinessEntityID, scegliere Refactoring e quindi Rinomina.

    Verrà visualizzata la finestra di dialogo Rinomina contenente il nome della colonna esistente.

  8. In Nuovo nome digitare BusinessEntityNumber.

  9. Selezionare la casella di controllo Aggiorna i riferimenti negli oggetti dello schema che contengono avvisi o errori.

  10. Se la casella di controllo Anteprima modifiche non è selezionata, selezionarla e scegliere OK.

    Verrà visualizzata la finestra di dialogo Anteprima modifiche - Rinomina contenente tutti gli elementi nel progetto che fanno riferimento alla colonna da rinominare.

  11. Fare clic su una delle modifiche.

    I relativi dettagli verranno visualizzati in Anteprima modifiche.

  12. Dopo avere esaminato le modifiche, scegliere Applica per applicarle.

    Tutti i file modificati verranno estratti dal controllo delle versioni.

È possibile visualizzare le modifiche in sospeso nella finestra Modifiche in sospeso, dove dovrebbero essere visualizzati i seguenti file:

  • Employee.table.sql

  • ufnGetContactInformation.function.sql

  • uspGetEmployeeManagers.proc.sql

  • uspGetManagerEmployees.proc.sql

  • uspUpdateEmployeeHireInfo.proc.sql

  • uspUpdateEmployeeLogin.proc.sql

  • uspUpdateEmployeePersonalInfo.proc.sql

  • FK_EmployeeDepartmentHistory_Employee_BusinessEntityID.fkey.sql

  • FK_EmployeePayHistory_Employee_BusinessEntityID.fkey.sql

  • FK_Employee_Person_BusinessEntityID.fkey.sql

  • FK_JobCandidate_Employee_BusinessEntityID.fkey.sql

  • PK_Employee_BusinessEntityID.pkey.sql

  • vEmployee.view.sql

  • vEmployeeDepartment.view.sql

  • FK_Document_Employee_Owner.fkey.sql

  • FK_PurchaseOrderHeader_EmployeeID.fkey.sql

  • FK_SalesPerson_Employee_BusinessEntityID.fkey.sql

  • vSalesPerson.view.sql

  • vSalesPersonSalesByFiscalYears.view.sql

  • AWGenPlan.dgen

Eseguire unit test del database

Dopo avere apportato le modifiche desiderate e prima di archiviare l'applicazione nel controllo della versione, è necessario eseguire lo unit test del database per verificare che l'applicazione funzioni correttamente, prima di condividere le modifiche con il team.

Per eseguire unit test del database per individuare potenziali problemi

  1. Scegliere Finestre dal menu Test e quindi Visualizzazione test.

    Nella finestra Visualizzazione test sono presenti numerosi test. Per impostazione predefinita, vengono creati i test denominati ManualTest1 e TestMethod1. Il test denominato dbo_ufpLeadingZeroTest è quello creato durante nella procedura dettagliata precedente.

  2. Selezionare dbo_ufpLeadingZeroTest, fare clic con il pulsante destro del mouse su di esso e scegliere Esegui selezione.

  3. I risultati verranno visualizzati nella finestra Risultati del test.

    Il progetto di database verrà distribuito nell'ambiente di sviluppo isolato, i dati di test verranno generati e il test verrà eseguito e superato.

Confronto del progetto di database con la produzione

È possibile confrontare gli schemi del progetto di database aggiornato e il database di produzione per determinarne le differenze. Poiché viene eseguito un confronto degli schemi e non l'aggiornamento di uno dei due, è possibile utilizzare l'uno o l'altro, indifferentemente, come origine o come destinazione.

Per confrontare lo schema del progetto di database con il database di produzione

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

    Verrà visualizzata la finestra di dialogo Nuovo confronto schema.

  2. Accettare i valori predefiniti per Schema di origine.

    Viene specificato il progetto di database, AdvWorksSandbox.

  3. In Schema di destinazione, nell'elenco Database, fare clic sulla connessione al database AdventureWorks da cui è stato originariamente importato lo schema di database e scegliere OK.

    Gli schemi vengono confrontati. Le uniche differenze dovrebbero essere le modifiche apportate durante questa procedura dettagliata.

  4. Esplorare le differenze tra gli schemi. Al termine, chiudere la finestra Confronto schema.

    È ora possibile condividere le modifiche con il team.

Archiviare le modifiche

Dopo avere verificato che tutte le modifiche sono pronte per essere condivise con altri membri del team, è possibile archiviarle nel controllo della versione. Le modifiche vengono archiviate nella soluzione, che in genere include il progetto di database, il progetto di unit test ed eventuali codice e unit test dell'applicazione associati.

Per archiviare le modifiche e renderle disponibili al team

  1. Scegliere Altre finestre dal menu Visualizza e quindi Modifiche in sospeso.

    Verrà visualizzata la finestra Modifiche in sospeso.

  2. In Commento, digitare "Renamed BusinessEntityID column".

  3. Nella finestra Modifiche in sospeso fare clic su Archivia sulla barra degli strumenti.

    Quando il progetto di database e i file che contiene vengono archiviati nel controllo della versione, viene visualizzata la finestra di dialogo Stato archiviazione. Le icone in Esplora soluzioni vengono aggiornate per indicare che i file sono archiviati nel controllo della versione.

Passaggi successivi

Questo processo iterativo viene eseguito più volte per ogni versione del database che il team distribuisce in produzione. Ogni sviluppatore apporta modifiche in ambiente isolato, le testa per verificare che siano corrette e quindi le condivide con il team, archiviando gli aggiornamenti nel controllo della versione. Per ulteriori informazioni su come compilare e distribuire il database, vedere Compilazione e distribuzione di database in un ambiente di sviluppo isolato e Compilazione e distribuzione di database in un ambiente di produzione o gestione temporanea.

Nota

Se si effettua la distribuzione nello stesso server dal quale si è originariamente importato AdventureWorks2008, potrebbe essere verificarsi un errore. Se si verifica un errore che indica che non è possibile creare un file perché esiste già , è probabile che non sia stato effettuato un passaggio nella prima procedura dettagliata. Per ulteriori informazioni, vedere Per distribuire il progetto nell'ambiente di sviluppo isolato.

Per ulteriori informazioni sulle funzionalità di database di Visual Studio, è possibile eseguire le procedure più dettagliate per ogni area di funzionalità.

Vedere anche

Concetti

Refactoring del codice e dei dati del database

Esecuzione di unit test del database

Verifica del codice del database tramite unit test

Confrontare e sincronizzare gli schemi di database