Share via


Procedura: Aggiornamento di un'applicazione livello dati

Utilizzare la procedura guidata Aggiorna applicazione livello dati o uno script di Windows PowerShell per modificare lo schema e le proprietà di un'applicazione livello dati (DAC) attualmente distribuita affinché corrispondano allo schema e alle proprietà definite in una nuova versione dell'applicazione livello dati.

Aggiornamenti sul posto e affiancati

Esistono due tipi di aggiornamenti dell'applicazione livello dati:

  • L'aggiornamento affiancato consente di mantenere una copia del database esistente e allo stesso tempo di compilare un nuovo database il cui schema è definito nella nuova versione dell'applicazione livello dati. Tramite tale aggiornamento i dati vengono copiati dal database precedente a quello nuovo.

  • L'aggiornamento sul posto consente di modificare lo schema del database esistente affinché corrisponda allo schema definito nella nuova versione dell'applicazione livello dati.

In SQL Server 2008 R2 e Microsoft Visual Studio 2010 è incluso Framework 1.0 applicazione livello dati, che supporta solo aggiornamenti affiancati. Gli aggiornamenti affiancati non sono supportati in SQL Azure. Sia in SQL Server 2008 R2 Service Pack 1 (SP1) sia in Visual Studio 2010 SP1 è incluso un nuovo Framework 1.1 applicazione livello dati in cui sono stati introdotti aggiornamenti sul posto in SQL Azure e nelle istanze del Motore di database. Per ulteriori informazioni su Framework 1.1 applicazione livello dati, vedere Supporto dell'applicazione livello dati per oggetti e versioni di SQL Server.

Nella versione originale dell'Aggiornamento guidato dell'applicazione livello dati è stato utilizzato Framework 1.0 applicazione livello dati per l'esecuzione di aggiornamenti affiancati. La versione della procedura guidata in SQL Server 2008 R2 SP1 consente di eseguire un aggiornamento sul posto.

Gli utenti di SQL Server 2008 R2 possono eseguire l'aggiornamento sia alla nuova procedura guidata sia a Framework 1.1 applicazione livello dati installando SQL Server 2008 R2 SP1.

Preparazione dell'aggiornamento

È consigliabile eseguire un backup completo del database prima di avviare l'aggiornamento. Se durante un aggiornamento viene rilevato un errore e non è possibile eseguire il rollback di tutti i relativi aggiornamenti, potrebbe essere necessario ripristinare il backup.

Esistono diverse azioni che è necessario intraprendere per la convalida del pacchetto di applicazione livello dati e delle azioni di aggiornamento. Per ulteriori informazioni su come eseguire questi controlli, vedere Procedura: Convalida di un pacchetto di applicazione livello dati.

  • È consigliabile evitare di eseguire l'aggiornamento tramite pacchetti di applicazioni livello dati provenienti da origini sconosciute o non attendibili. Tali pacchetti DAC possono contenere codice dannoso che potrebbe eseguire codice Transact-SQL indesiderato o causare errori modificando lo schema. Prima di utilizzare un'applicazione livello dati proveniente da un'origine sconosciuta o non attendibile, decomprimerla e controllare il codice, ad esempio le stored procedure o altro codice definito dall'utente.

  • Se sono state apportate modifiche al database corrente dopo che è stata distribuita l'applicazione livello dati originale, alcune delle modifiche potrebbero impedire il completamento dell'aggiornamento o essere rimosse in seguito all'aggiornamento. È necessario innanzitutto generare un report per analizzare modifiche di questo tipo apportate al database.

  • È consigliabile generare un elenco delle modifiche dello schema che verranno eseguite dall'aggiornamento e controllarle per rilevare eventuali problemi.

Scegliere le opzioni di aggiornamento dell'applicazione livello dati

Sono disponibili quattro opzioni per un aggiornamento sul posto:

Ignora perdita dati: se True, l'aggiornamento viene continuato anche se alcune delle operazioni comportano la perdita di dati. Se False, queste operazioni comporteranno l'interruzione dell'aggiornamento. Ad esempio, se una tabella nel database corrente non è presente nello schema della nuova applicazione livello dati, la tabella viene rilasciata se è specificato True. L'impostazione predefinita è True.

Blocco su modifiche: se True, l'aggiornamento viene terminato qualora lo schema del database sia diverso da quello definito nell'applicazione livello dati precedente. Se False, l'aggiornamento continua anche se vengono rilevate delle modifiche. L'impostazione predefinita è False.

Rollback in caso di errore: se True, l'aggiornamento è incluso nelle transazioni e, in caso di errori, verrà tentato un rollback. Se False, viene eseguito il commit di tutte le modifiche nel momento in cui vengono apportate e, in caso di errori, potrebbe essere necessario ripristinare un backup precedente del database. L'impostazione predefinita è False.

Ignora convalida criteri: se True, i criteri di selezione server dell'applicazione livello dati non vengono valutati. Se False, vengono valutati i criteri e l'aggiornamento termina in caso di errore di convalida. L'impostazione predefinita è False.

Requisiti

Un'applicazione livello dati può essere aggiornata unicamente da membri del ruolo predefinito del server sysadmin o serveradmin oppure tramite account di accesso nel ruolo predefinito del server dbcreator con autorizzazioni ALTER ANY LOGIN. È necessario che l'accesso venga eseguito come proprietario del database esistente. È inoltre possibile avviare la procedura guidata utilizzando l'account dell'amministratore di sistema di SQL Server predefinito denominato sa.

Il nome dell'applicazione nel pacchetto di applicazione livello dati deve corrispondere al nome dell'applicazione livello dati attualmente distribuita. Se ad esempio il pacchetto DAC corrente include il nome di applicazione ContabilitàGenerale, è possibile eseguire l'aggiornamento solo tramite un pacchetto di applicazione livello dati che contiene anch'esso il nome di applicazione ContabilitàGenerale.

Password di accesso

Per migliorare la sicurezza, gli account di accesso dell'autenticazione di SQL Server vengono archiviati in un pacchetto di applicazione livello dati senza password. Quando il pacchetto viene distribuito o aggiornato, l'account di accesso viene creato come account disabilitato con una password generata. Per abilitare gli account di accesso, è necessario accedere utilizzando un account che dispone dell'autorizzazione ALTER ANY LOGIN e utilizzare ALTER LOGIN per abilitare l'account di accesso e assegnare una nuova password che può essere comunicata all'utente. Questa operazione non è necessaria per gli account di accesso dell'autenticazione di Windows, in quanto le relative password non sono gestite da SQL Server.

Considerazioni sullo spazio

Per un aggiornamento sul posto, la considerazione principale relativamente allo spazio consiste nel fatto che lo spazio disponibile deve essere sufficiente alla registrazione di tutte le modifiche nel log delle transazioni.

Un aggiornamento affiancato consente di mantenere il database corrente per l'applicazione livello dati distribuita, oltre a consentire di creare un nuovo database e di copiarvi all'interno i dati esistenti. È necessario disporre di spazio libero su disco sufficiente per inserire un nuovo database con le dimensioni del database esistente. Prima di eseguire un aggiornamento affiancato, assicurarsi che la quantità di dati nel database corrente non sia troppo elevata per il nuovo database. Il database creato durante l'aggiornamento disporrà delle impostazioni di dimensione predefinite incluse nell'istruzione CREATE DATABASE. L'impostazione predefinita prevede un solo file di dati con una dimensione iniziale di 3 MB e un numero illimitato di incrementi di 1 MB, nonché un file di log con una dimensione iniziale di 1 MB e un limite massimo di dimensione di 2 GB.

Opzioni relative a database affiancati

In un aggiornamento affiancato, il database creato durante la fase di distribuzione disporrà di tutte le impostazioni predefinite incluse nell'istruzione CREATE DATABASE, fatta eccezione per le seguenti:

  • Le regole di confronto e il livello di compatibilità del database sono impostati sui valori definiti nel pacchetto di applicazione livello dati. I pacchetti compilati da un progetto di applicazione livello dati (DAC) in Visual Studio utilizzano i valori impostati nel progetto di applicazione livello dati. I pacchetti estratti da un database esistente utilizzano i valori del database originale.

  • È possibile modificare alcune delle impostazioni del database, ad esempio il nome del database e i percorsi di file, nella pagina Aggiorna configurazione.

Alcune opzioni del database, ad esempio TRUSTWORTHY, DB_CHAINING e HONOR_BROKER_PRIORITY, non possono essere modificate durante il processo di distribuzione. Le proprietà fisiche, ad esempio il numero di filegroup o i numeri e le dimensioni dei file, non possono essere modificate durante il processo di distribuzione. Al termine della distribuzione, è possibile utilizzare l'istruzione ALTER DATABASE, SQL Server Management Studio o SQL Server PowerShell per modificare il database in base alle proprie esigenze. Per ulteriori informazioni, vedere Modifica di database.

Aggiornamento sul posto dell'applicazione livello dati tramite PowerShell

In questo esempio viene utilizzato il metodo IncrementalUpgrade() di Framework 1.1 applicazione livello dati per eseguire un aggiornamento sul posto dell'applicazione livello dati. Questo metodo consentirà l'aggiornamento delle applicazioni livello dati in SQL Server o in SQL Azure. La modalità consigliata per ottenere il nuovo framework consiste nell'installare SQL Server 2008 R2 SP1.

Creare un file script di PowerShell (come IncrementalUpgradeDAC.ps1) contenente il codice seguente.

  1. Aggiungere codice per creare un oggetto server SMO e impostarlo sull'istanza contenente il database da cui si desidera estrarre un'applicazione livello dati. In questo esempio viene impostato un oggetto server sull'istanza predefinita nel computer locale:

    ## Set a SMO Server object to the default instance on the local computer.
    CD SQLSERVER:\SQL\localhost\DEFAULT
    $srv = get-item .
    
  2. Aggiungere codice per aprire un oggetto ServerConnection e connetterlo alla stessa istanza.

    ## Open a Common.ServerConnection to the same instance.
    $serverconnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection($srv.ConnectionContext.SqlConnectionObject)
    $serverconnection.Connect()
    $dacstore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverconnection)
    
  3. Aggiungere codice per caricare il file del pacchetto di applicazione livello dati. In questo esempio viene caricato un file MyApplicationVNext.dacpac.

    ## Load the DAC package file.
    $dacpacPath = "C:\MyDACs\MyApplicationVNext.dacpac"
    $fileStream = [System.IO.File]::Open($dacpacPath,[System.IO.FileMode]::OpenOrCreate)
    $dacType = [Microsoft.SqlServer.Management.Dac.DacType]::Load($fileStream)
    
  4. Aggiungere codice per sottoscrivere gli eventi di distribuzione di applicazioni livello dati.

    ## Subscribe to the DAC deployment events.
    $dacstore.add_DacActionStarted({Write-Host `n`nStarting at $(get-date) :: $_.Description})
    $dacstore.add_DacActionFinished({Write-Host Completed at $(get-date) :: $_.Description})
    
  5. Aggiungere codice per specificare l'applicazione livello dati da aggiornare e le opzioni di aggiornamento, aggiornare l'applicazione livello dati, quindi chiudere il file del pacchetto di applicazione livello dati.

    ## Upgrade the DAC and create the database.
    $dacName  = "MyApplication"
    ## Set the upgrade options.
    $upgradeProperties = New-Object Microsoft.SqlServer.Management.Dac.DacUpgradeOptions
    $upgradeProperties.blockonchanges = $true
    $upgradeProperties.ignoredataloss = $false 
    $upgradeproperties.rollbackonfailure = $true
    $upgradeProperties.skippolicyvalidation = $false
    ## Do not set IgnoreDrift, replaced by BlockOnChanges.
    
    ## Upgrade the DAC and create the database.
    $dacstore.IncrementalUpgrade($dacName, $dacType, $upgradeProperties)
    
    $fileStream.Close()
    

Eseguire IncrementalUgradeDAC.ps1 da una sessione PowerShell in cui sono stati caricati gli snap-in SQL Server PowerShell o utilizzando il prompt dei comandi sqlps.

Aggiornamento sul posto dell'applicazione livello dati tramite una procedura guidata

In Management Studio è possibile avviare la procedura guidata Aggiorna applicazione di livello dati aprendo il nodo Server in Esplora oggetti, selezionando il nodo Gestione, quindi il nodo Applicazioni livello dati. Fare clic con il pulsante destro del mouse su un nodo dell'applicazione livello dati in Esplora oggetti, quindi scegliere Aggiorna applicazione di livello dati.

Nota di attenzioneAttenzione

L'Aggiornamento guidato dell'applicazione livello dati disponibile nella versione originale di SQL Server 2008 R2 consente di eseguire un aggiornamento affiancato che non è supportato in SQL Azure. In questa sezione viene descritto l'utilizzo della nuova versione della procedura guidata in SQL Server 2008 R2 SP1, che consente di eseguire un aggiornamento sul posto.

Fare clic su un collegamento nell'elenco riportato di seguito per passare ai dettagli per una pagina della procedura guidata:

  • Pagina Introduzione

  • Pagina Seleziona pacchetto

  • Pagina Verifica criteri

  • Pagina Rileva modifiche

  • Controllare il piano di aggiornamento

  • Pagina Riepilogo

  • Pagina Aggiorna applicazione livello dati

Pagina Introduzione

In questa pagina vengono descritti i passaggi per l'aggiornamento di un'applicazione livello dati.

Non visualizzare più questa pagina. - Fare clic sulla casella di controllo per evitare che la pagina venga visualizzata nuovamente in futuro.

Avanti >: consente di passare alla pagina Seleziona pacchetto.

Annulla: consente di terminare la procedura guidata senza distribuire l'applicazione livello dati.

Pagina Seleziona pacchetto

Utilizzare questa pagina per specificare il pacchetto di applicazione livello dati contenente la nuova versione dell'applicazione livello dati. La pagina passa attraverso due stati.

Selezione pacchetto di applicazione livello dati

Utilizzare lo stato iniziale della pagina per scegliere il pacchetto di applicazione livello dati da distribuire. È necessario specificare un file di pacchetto di applicazione livello dati valido con estensione dacpac. Il nome dell'applicazione nel pacchetto di applicazione livello dati deve corrispondere al nome dell'applicazione del pacchetto di applicazione livello dati corrente.

Pacchetto di applicazione livello dati: consente di specificare il percorso e il nome del file del pacchetto DAC contenente la nuova versione dell'applicazione livello dati. Per passare al percorso del pacchetto di applicazione livello dati, è possibile fare clic sul pulsante Sfoglia a destra della casella.

Nome applicazione: casella di sola lettura in cui viene visualizzato il nome dell'applicazione livello dati assegnato durante la creazione o l'estrazione del pacchetto DAC da un database.

Versione: casella di sola lettura in cui viene visualizzata la versione assegnata durante la creazione o l'estrazione dell'applicazione livello dati da un database.

Descrizione: casella di sola lettura in cui viene visualizzata la descrizione immessa durante la creazione o l'estrazione dell'applicazione livello dati da un database.

< Indietro: consente di tornare alla pagina Introduzione.

Avanti >: consente di visualizzare un indicatore di stato per la verifica della validità del file selezionato come pacchetto di applicazione livello dati.

Annulla: consente di terminare la procedura guidata senza aggiornare il pacchetto DAC.

Convalida del pacchetto di applicazione livello dati

Viene visualizzato un indicatore di stato per la verifica della validità del file selezionato come pacchetto di applicazione livello dati. Se il pacchetto di applicazione livello dati viene convalidato, la procedura guidata continua con la pagina Verifica criteri. Se il file non è un pacchetto di applicazione livello dati valido, rimane visualizzata la pagina Selezione pacchetto di applicazione livello dati. Selezionare un altro pacchetto di applicazione livello dati valido o annullare la procedura guidata e generare un nuovo pacchetto di applicazione livello dati.

Convalida del contenuto di DAC: indicatore di stato che indica lo stato corrente del processo di convalida.

< Indietro: consente di tornare allo stato iniziale della pagina Seleziona pacchetto.

Avanti >: consente di passare alla versione finale della pagina Seleziona pacchetto.

Annulla: consente di terminare la procedura guidata senza distribuire l'applicazione livello dati.

Pagina Verifica criteri

Utilizzare questa pagina per controllare il risultato della valutazione degli eventuali criteri di selezione dei server dell'applicazione livello dati. I criteri di selezione dei server del pacchetto DAC sono facoltativi e sono assegnati a un pacchetto DAC creato in Microsoft Visual Studio. I facet dei criteri di selezione dei server vengono utilizzati per specificare le condizioni che un'istanza del Motore di database deve soddisfare per ospitare il pacchetto DAC.

Risultati della valutazione delle condizioni dei criteri: report di sola lettura che indica se le valutazioni delle condizioni dei criteri di selezione del server DAC sono state eseguite correttamente. I risultati della valutazione di ogni condizione sono riportati in una riga distinta.

Ignora le violazioni dei criteri: utilizzare questa casella di controllo per continuare l'aggiornamento se una o più delle condizioni dei criteri non sono soddisfatte. Selezionare questa opzione solo se si è sicuri che tutte le condizioni non soddisfatte non impediranno la distribuzione del pacchetto DAC.

< Indietro: consente di tornare alla pagina Seleziona pacchetto.

Avanti >: consente di passare alla pagina Rileva modifiche.

Annulla: consente di terminare la procedura guidata senza aggiornare il pacchetto DAC.

Pagina Rileva modifiche

In questa pagina vengono visualizzati i risultati dei controlli effettuati dalla procedura guidata sulle modifiche apportate al database che rendono lo schema diverso rispetto alla relativa definizione archiviata nei metadati dell'applicazione livello dati di msdb. Viene segnalato ad esempio se sono state utilizzate istruzioni CREATE, ALTER o DROP per aggiungere, modificare o rimuovere oggetti dal database dopo la distribuzione originale dell'applicazione livello dati. Nella pagina viene dapprima visualizzato un indicatore di stato, quindi vengono visualizzati i risultati dell'analisi.

Rilevamento delle modifiche in corso. L'operazione potrebbe richiedere alcuni minuti: viene visualizzato un indicatore di stato che indica il rilevamento delle differenze tra lo schema corrente del database e gli oggetti nella definizione DAC.

Risultati rilevamento modifiche: indica che l'analisi è stata completata e ne visualizza i risultati.

Il database NomeDatabase non è stato modificato: indica che la procedura guidata non ha rilevato differenze tra gli oggetti definiti nel database e le relative controparti nella definizione DAC.

Il database NomeDatabase è stato modificato: indica che la procedura guidata ha rilevato modifiche tra gli oggetti definiti nel database e le relative controparti nella definizione DAC.

Continua ignorando la possibile perdita delle modifiche: specifica che l'utente è consapevole che alcuni degli oggetti o dei dati nel database corrente non saranno presenti nel nuovo database e che desidera procedere con l'aggiornamento. Scegliere questo pulsante solo se il report delle modifiche è stato analizzato e si conoscono i passaggi che è necessario eseguire per trasferire manualmente oggetti o dati necessari nel nuovo database. In caso di dubbi, fare clic sul pulsante Salva report per salvare il report delle modifiche, quindi fare clic su Annulla. Analizzare il report, pianificare come trasferire gli oggetti e i dati necessari al termine dell'aggiornamento, quindi riavviare la procedura guidata. Per ulteriori informazioni, vedere Aggiornamento di applicazioni livello dati.

Salva report: fare clic su questo pulsante per salvare un report delle modifiche rilevate dalla procedura guidata tra gli oggetti nel database e le relative controparti nella definizione DAC. È quindi possibile controllare il report per determinare se è necessario eseguire altre operazioni al termine dell'aggiornamento per incorporare alcuni o tutti gli oggetti elencati nel report nel nuovo database.

< Indietro: consente di tornare alla pagina Selezione pacchetto di applicazione livello dati.

Avanti >: consente di passare alla pagina Controllare il piano di aggiornamento.

Annulla: consente di terminare la procedura guidata senza distribuire l'applicazione livello dati.

Pagina Controllare il piano di aggiornamento

Utilizzare questa pagina per controllare le azioni che verranno eseguite tramite il processo di aggiornamento. Continuare solo se si è sicuri che l'aggiornamento non crei problemi.

Le azioni seguenti saranno utilizzate per aggiornare l'applicazione livello dati. Controllare le informazioni visualizzate per assicurarsi che le azioni che verranno eseguite siano corrette. Nella colonna Azione sono visualizzate le azione, ad esempio le istruzioni Transact-SQL, che verranno eseguite per effettuare l'aggiornamento. Nella colonna Perdita di dati sarà contenuto un avviso qualora l'azione associata potrebbe comportare l'eliminazione di dati.

Aggiorna: consente di aggiornare l'elenco di azioni.

Salva report azioni: consente di salvare il contenuto della finestra delle azioni in un file HTML.

Continua ignorando la possibile perdita delle modifiche: specifica che l'utente è consapevole che alcuni degli oggetti o dei dati nel database corrente non saranno presenti nel nuovo database e che desidera procedere con l'aggiornamento. Scegliere questo pulsante solo se il report delle modifiche è stato analizzato e si conoscono i passaggi che è necessario eseguire per trasferire manualmente oggetti o dati necessari nel nuovo database. In caso di dubbi, fare clic sul pulsante Salva report azioni per salvare il report delle modifiche e sul pulsante Salva script per salvare lo script Transact-SQL, quindi scegliere Annulla. Analizzare il report e lo script, pianificare come trasferire gli oggetti e i dati necessari al termine dell'aggiornamento, quindi riavviare la procedura guidata. Per ulteriori informazioni, vedere Aggiornamento di applicazioni livello dati.

Salva script: consente di salvare le istruzioni Transact-SQL che verranno utilizzate per eseguire l'aggiornamento a un file di testo.

Ripristina impostazioni predefinite: consente di ripristinare l'impostazione predefinita dell'opzione, ovvero False.

< Indietro: consente di tornare alla pagina Rileva modifiche.

Avanti >: consente di passare alla pagina Riepilogo.

Annulla: consente di terminare la procedura guidata senza distribuire l'applicazione livello dati.

Utilizzare questa pagina per verificare le azioni eseguite dalla procedura guidata durante l'aggiornamento del pacchetto DAC.

Le impostazioni seguenti saranno utilizzate per aggiornare l'applicazione livello dati. Controllare le informazioni visualizzate per assicurarsi che le azioni che verranno eseguite siano corrette. Nella finestra viene visualizzata l'applicazione livello dati selezionata per l'aggiornamento e il pacchetto di applicazione livello dati che contiene la nuova versione dell'applicazione. Viene inoltre indicato se la versione corrente del database corrisponde alla definizione DAC corrente o se il database è stato modificato.

< Indietro: consente di tornare alla pagina Rileva modifiche.

Avanti >: consente di distribuire il pacchetto DAC e visualizzare i risultati nella pagina Aggiorna applicazione livello dati.

Annulla: consente di terminare la procedura guidata senza distribuire il pacchetto DAC.

Pagina Aggiorna applicazione livello dati

In questa pagina viene riportato l'esito positivo o negativo dell'operazione di aggiornamento.

Aggiornamento del pacchetto DAC: consente di visualizzare l'esito positivo o negativo di ogni azione eseguita per l'aggiornamento del pacchetto DAC. Verificare le informazioni che determinano l'esito positivo o negativo di ciascuna azione. Ogni azione che ha rilevato un errore avrà un collegamento nella colonna Risultato. Selezionare il collegamento per visualizzare un report dell'errore per l'azione.

Salva report: consente di salvare il report dell'aggiornamento come file HTML. Nel file viene riportato lo stato di ogni azione, inclusi tutti gli errori generati da qualsiasi azione. La cartella predefinita è una cartella SQL Server Management Studio\DAC Packages contenuta all'interno della cartella Documenti dell'account di Windows.

Fine: consente di terminare la procedura guidata.

Aggiornamento affiancato dell'applicazione livello dati tramite PowerShell

In questo esempio viene utilizzato il metodo Upgrade() di Framework 1.0 applicazione livello dati per eseguire un aggiornamento affiancato dell'applicazione livello dati. Il metodo Upgrade() sarà rimosso nella prossima versione di SQL Server e non è supportato in SQL Azure. Il metodo migliore da utilizzare per eseguire un aggiornamento sul posto dell'applicazione livello dati è IncrementalUpgrade() di Framework 1.1 applicazione livello dati.

Sono disponibili due opzioni per gli aggiornamenti affiancati:

  • IgnoreDrift: se True, l'aggiornamento continua anche se vengono rilevate modifiche. Se False, l'aggiornamento viene terminato nel caso in cui lo schema del database sia diverso da quello definito nell'applicazione livello dati precedente.

  • InvokeTSPolicy: se True, vengono valutati i criteri di selezione server dell'applicazione livello dati e l'aggiornamento viene terminato in caso di errore di convalida. Se False, i criteri non vengono valutati.

Per eseguire un aggiornamento sul posto, creare un file script di PowerShell (come UpgradeDAC.ps1) contenente il codice seguente.

  1. Aggiungere codice per creare un oggetto server SMO e impostarlo sull'istanza contenente il database da cui si desidera estrarre un'applicazione livello dati. In questo esempio viene impostato un oggetto server sull'istanza predefinita nel computer locale:

    ## Set a SMO Server object to the default instance on the local computer.
    CD SQLSERVER:\SQL\localhost\DEFAULT
    $srv = get-item .
    
  2. Aggiungere codice per aprire un oggetto ServerConnection e connetterlo alla stessa istanza.

    ## Open a Common.ServerConnection to the same instance.
    $serverconnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection($srv.ConnectionContext.SqlConnectionObject)
    $serverconnection.Connect()
    $dacstore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverconnection)
    
  3. Aggiungere codice per caricare il file del pacchetto di applicazione livello dati. In questo esempio viene caricato un file MyApplicationVNext.dacpac.

    ## Load the DAC package file.
    $dacpacPath = "C:\MyDACs\MyApplicationVNext.dacpac"
    $fileStream = [System.IO.File]::Open($dacpacPath,[System.IO.FileMode]::OpenOrCreate)
    $dacType = [Microsoft.SqlServer.Management.Dac.DacType]::Load($fileStream)
    
  4. Aggiungere codice per sottoscrivere gli eventi di distribuzione di applicazioni livello dati.

    ## Subscribe to the DAC deployment events.
    $dacstore.add_DacActionStarted({Write-Host `n`nStarting at $(get-date) :: $_.Description})
    $dacstore.add_DacActionFinished({Write-Host Completed at $(get-date) :: $_.Description})
    
  5. Aggiungere codice per aggiornare l'applicazione livello dati e chiudere il file del pacchetto di applicazione livello dati:

    ## Upgrade the DAC and create the database.
    $dacName  = "MyApplication"
    $evaluateTSPolicy = $true
    $ignoreDriftOption = $true
    $upgradeProperties = New-Object Microsoft.SqlServer.Management.Dac.DacUpgradeOptions($evaluateTSPolicy, $ignoreDriftOption)
    $dacstore.Upgrade($dacName, $dacType, $upgradeProperties)
    $fileStream.Close()
    

Eseguire UgradeDAC.ps1 da una sessione PowerShell in cui sono stati caricati gli snap-in SQL Server PowerShell o utilizzando il prompt dei comandi sqlps.

Cronologia modifiche

Contenuto aggiornato

Aggiunta sessione sull'utilizzo di PowerShell.

Aggiunta di informazioni sull'aggiornamento sul posto e sul Feature Pack di Framework 1.1 applicazione livello dati.

SQL Server 2008 R2 SP1 include sia Framework 1.1 applicazione livello dati sia una nuova procedura guidata per l'aggiornamento dell'applicazione livello dati che consente di eseguire aggiornamenti sul posto.