Estrarre un'applicazione livello dati da un databaseExtract a DAC From a Database

Usare la procedura guidata Estrai applicazione livello dati o uno script di Windows PowerShell per estrarre un pacchetto di applicazione livello dati da un database di SQL Server esistente.Use either the Extract Data-tier Application Wizard or a Windows PowerShell script to extract a data-tier application (DAC) package from an existing SQL Server database. Il processo di estrazione crea un file di pacchetto DAC che contiene le definizioni degli oggetti di database e i relativi elementi a livello di istanza.The extraction process creates a DAC package file that contains definitions of the database objects and their related instance-level elements. Ad esempio, un file di pacchetto di applicazione livello dati contiene tutte le tabelle di database, le stored procedure, le viste e gli utenti, nonché gli account di accesso che eseguono il mapping agli utenti del database.For example, a DAC package file contains the database tables, stored procedures, views, and users, along with the logins that map to the database users.

Operazioni preliminariBefore you begin

È possibile estrarre un'applicazione livello dati dai database che risiedono in istanze di Database SQLSQL Database, o SQL Server 2000SQL Server 2000 Service Pack 4, o versioni successive.You can extract a DAC from databases residing on instances of Database SQLSQL Database, or SQL Server 2000SQL Server 2000 Service Pack 4 or later. Se il processo di estrazione viene eseguito rispetto a un database distribuito da un'applicazione livello dati, vengono estratte solo le definizioni degli oggetti nel database.If the extraction process is run against a database that was deployed from a DAC, only the definitions of the objects in the database are extracted. Il processo non fa riferimento all'applicazione livello dati registrata in msdb (master in Database SQLSQL Database).The process does not reference the DAC registered in msdb (master in Database SQLSQL Database). Il processo di estrazione non consente di registrare la definizione DAC nell'istanza corrente del motore di database.The extraction process does not register the DAC definition in the current instance of the Database Engine. Per ulteriori informazioni sulla registrazione di un'applicazione livello dati, vedere Register a Database As a DAC.For more information about registering a DAC, see Register a Database As a DAC.

Limitazioni e restrizioni Limitations and restrictions

Un'applicazione livello dati può essere estratta solo da un database in Database SQLSQL Databaseo SQL Server 2005SQL Server 2005 Service Pack 4 (SP4) o versioni successive.A DAC can only be extracted from a database in Database SQLSQL Database, or SQL Server 2005SQL Server 2005 Service Pack 4 (SP4) or later. Non è possibile estrarre un'applicazione livello dati se il database include oggetti non supportati nell'applicazione livello dati o utenti contenuti.You cannot extract a DAC if the database has objects that are not supported in a DAC, or contained users. Per ulteriori informazioni sui tipi di oggetti supportati in un'applicazione livello dati, vedere DAC Support For SQL Server Objects and Versions.For more information about the types of objects supported in a DAC, see DAC Support For SQL Server Objects and Versions.

Autorizzazioni Permissions

L'estrazione di un'applicazione livello dati richiede almeno le autorizzazioni ALTER ANY LOGIN e VIEW DEFINITION nell'ambito del database, oltre alle autorizzazioni SELECT su sys.sql_expression_dependencies.Extracting a DAC requires at least ALTER ANY LOGIN and database scope VIEW DEFINITION permissions, as well as SELECT permissions on sys.sql_expression_dependencies. L'estrazione di un'applicazione del livello dati può essere effettuata da membri del ruolo predefinito del server securityadmin che sono anche membri del ruolo predefinito del database database_owner nel database dal cui viene estratta l'applicazione del livello dati.Extracting a DAC can be done by members of the securityadmin fixed server role who are also members of the database_owner fixed database role in the database from which the DAC is extracted. Possono estrarre un'applicazione livello dati anche i membri del ruolo predefinito del server sysadmin o dell'account amministratore di sistema SQL Server predefinito denominato sa .Members of the sysadmin fixed server role or the built-in SQL Server system administrator account named sa can also extract a DAC.

Utilizzo della Procedura guidata Estrai applicazione livello dati Using the Extract Data-tier Application Wizard

Per estrarre un'applicazione livello dati utilizzando una procedura guidataTo Extract a DAC Using a Wizard

  1. In Esplora oggetti, espandere il nodo dell'istanza contenente il database da cui è necessario estrarre l'applicazione livello dati.In Object Explorer, expand the node for the instance containing the database from which the DAC is to be extracted.

  2. Espandere il nodo di Database .Expand the Databases node.

  3. Fare clic con il pulsante destro del mouse sul nodo del database da cui si deve estrarre l'applicazione livello dati, scegliere Attivitàe selezionare Estrai applicazione livello datiRight-click the node for the database from which the DAC is to be extracted, point to Tasks, and then select Extract Data-tier Application…

  4. Completare le finestre di dialogo della procedura guidata.Complete the wizard dialogs:

    1. Pagina IntroduzioneIntroduction Page

    2. Pagina Seleziona datiSelect Data Page

    3. Pagina Imposta proprietàSet Properties Page

    4. Pagina Convalida e riepilogoValidation and Summary Page

    5. Pagina Compila pacchettoBuild Package Page

Pagina introduttiva della procedura guidata Wizard introduction page

In questa pagina vengono descritti i passaggi per l'estrazione di un'applicazione livello dati.This page describes the steps for extracting a data-tier application.

Non visualizzare più questa paginaDo not show this page again. - Fare clic sulla casella di controllo per evitare che la pagina venga visualizzata nuovamente in futuro.- Click the check box to stop the page from being displayed in the future.

Avanti >: consente di passare alla pagina Seleziona metodo.Next > - Proceeds to the Choose Method page.

Annulla : termina la procedura guidata senza estrarre un'applicazione livello dati dal database.Cancel - Ends the wizard without extracting a data-tier application from the database.

[Estrazione guidata][Extract Wizard]

Select data page Select data page

Selezionare i dati di riferimento che si vuole includere nel file del pacchetto di applicazione livello dati.Select the reference data that you want to include in your data-tier application (DAC) package file. L'inserimento di dati nel pacchetto di applicazione livello dati è facoltativo.Including data in your DAC package is optional. Il pacchetto di applicazione livello dati include già lo schema di tutti gli oggetti di database e gli oggetti istanza supportati correlati al database.The DAC package will already include the schema of all supported database objects and instance objects related to your database.

È possibile includere un massimo di 10 MB di dati di riferimento nel file di pacchetto di applicazione livello dati.You can include up to 10 MB of reference data in your DAC package file. Per poter essere incluse nell'applicazione livello dati, tuttavia, le tabelle non devono contenere tipi di dati BLOB (Binary Large Object, oggetto binario di grandi dimensioni), ad esempio image o varchar(max).However, for tables to be included in the DAC, they may not contain binary large object (BLOB) data types such as image or varchar(max). Per estrarre maggiori quantità di dati per il trasferimento a un altro database, utilizzare SQL Server Integration Services, l'utilità di copia bulk o una delle numerose altre tecniche di migrazione dei dati.To extract larger amounts of data for transferring to another database, use SQL Server Integration Services, the bulk copy utility, or one of many other data migration techniques.

Tabella di database : selezionare la casella di controllo accanto alle tabelle di database contenenti i dati da includere nel pacchetto di applicazione livello dati.Database table - Select the check box next to the database tables which contain the data that you want to include in your DAC package. È possibile selezionare fino a dieci tabelle contenenti un massimo di 10.000 righe.You can select up to ten tables that have 10,000 rows or less.

[Estrazione guidata][Extract Wizard]

Set properties page Set properties page

Utilizzare questa pagina della procedura guidata per descrivere l'applicazione livello dati.Use this page of the wizard to describe the data-tier application (DAC). Queste proprietà vengono utilizzate per identificare l'applicazione livello dati e distinguerla dalle altre.These properties are used to identify the DAC and help distinguish it from others.

Nome identifica l'applicazione livello dati.Name - This name identifies the DAC. Può essere diverso dal nome del file del pacchetto di applicazione livello dati e deve descrivere l'applicazione.It can be different than the name of the DAC package file and should describe your application. Ad esempio, se il database viene utilizzato per un'applicazione finanziaria, si può chiamare DAC Finanza.For example, if the database is used for a finance application, you may wish to name the DAC Finance.

Versione (usare xx.xx.xx.xx, dove x è un numero) : valore numerico che identifica la versione dell'applicazione livello dati.Version (use xx.xx.xx.xx, where x is a number) - A numeric value that identifies the version of the DAC. La versione DAC viene utilizzata in Visual Studio per identificare la versione della DAC alla quale stanno lavorando gli sviluppatori.The DAC version is used in Visual Studio to identify the version of the DAC that developers are working on. Quando si distribuisce un'applicazione livello dati, la versione viene archiviata nel database msdb e può essere visualizzata successivamente nel nodo Applicazioni livello dati di SQL Server Management StudioSQL Server Management Studio.When deploying a DAC, the version is stored in the msdb database and can later be viewed under the Data-tier Applications node in SQL Server Management StudioSQL Server Management Studio.

Descrizione : facoltativa.Description: - Optional. Viene descritta l'applicazione livello dati.Describes the DAC. Quando si distribuisce un'applicazione livello dati, la descrizione viene archiviata nel database msdb e può essere visualizzata successivamente nel nodo Applicazioni livello dati di Management StudioManagement Studio.When deploying a DAC, the description is stored in the msdb database and can later be viewed under the Data-tier Applications node in Management StudioManagement Studio.

Salva nel file del pacchetto di applicazione livello dati (nome file con estensione dacpac): salva l'applicazione livello dati in un file del pacchetto di applicazione livello dati, con estensione dacpac.Save to DAC package file (include .dacpac extension with file name): - Saves the DAC to a DAC package file, with a .dacpac extension. Fare clic sul pulsante Sfoglia per specificare il nome e il percorso del file.Click the Browse button to specify a name and location for the file.

Sovrascrivi file esistente : selezionare questa casella di controllo per sostituire il file del pacchetto di applicazione livello dati se ne esiste già uno con lo stesso nome.Overwrite existing file - Select this check box to replace the DAC package file if one already exists with the same name.

Validation and summary page Validation and summary page

In questa pagina della procedura guidata viene verificato che tutti gli oggetti di database siano supportati da un'applicazione livello dati.On this page, the wizard validates that all database objects are supported by a data-tier application (DAC). Controlla inoltre le dipendenze attraverso gli oggetti di database per determinare il set di oggetti che possono essere inclusi correttamente nella DAC.It also checks dependencies across database objects to determine the set of objects that can be successfully included in the DAC. Successivamente, visualizza il report di convalida e riepiloga le opzioni selezionate nella procedura guidata.After that, it displays the validation report and summarizes the options that you have selected in this wizard. Per modificare un'opzione, fare clic su Indietro.To change an option, click Previous. Per avviare l'estrazione di un'applicazione livello dati, fare clic su Avanti.To begin extracting a DAC, click Next.

NOTA.Se uno o più oggetti non sono supportati da un'applicazione livello dati, il pulsante Avanti è disabilitato e il processo di estrazione non può continuare.NOTE!If one or more objects are not supported by a DAC, then the Next button is disabled and the extraction process may not continue. In tal caso, è consigliabile rimuovere gli oggetti non supportati ed eseguire nuovamente la procedura guidata.In such cases, it is recommended to remove the non-supported objects and then run this wizard again.

Riepilogo n riepilogo delle opzioni selezionate viene visualizzato in Proprietà DAC.Summary - A summary of the options you have selected are listed under DAC properties. I risultati della convalida vengono elencati in Oggetti DAC.The results of the validation are listed under DAC objects. La convalida può dare tre tipi di risultati:There are three types of results from the validation:

  • Oggetti inclusi correttamente in DAC- Questi oggetti e le loro dipendenze sono supportati e possono essere inclusi correttamente nella DAC.Objects included in DAC successfully: these objects and their dependencies are supported, and can be included in the DAC successfully.

  • Oggetti inclusi in DAC con avvisi- Questi oggetti sono supportati, ma dipendono da altri oggetti che non sono supportati in una DAC.Objects included in DAC with warnings: these objects are supported, but depend on other objects that are not supported in a DAC.

  • Oggetti non inclusi in DAC- Questi oggetti non sono supportati e devono essere rimossi dal database prima di estrarre correttamente una DAC.Objects not included in DAC: these objects are not supported and must be removed from the database before successfully extracting a DAC.

    Il processo di convalida controlla più livelli delle dipendenze.The validation process checks multiple levels of dependencies. Ad esempio, se una stored procedure dipende da una tabella che utilizza il tipo di dati CLR non supportato, la stored procedure sarà elencata sotto Oggetti inclusi in DAC con avvisi.For example, if a stored procedure depends on a table that uses the unsupported CLR data type, the stored procedure will be listed under Objects included in DAC with warnings.

    Se uno o più oggetti non sono supportati da una DAC, il pulsante Avanti è disabilitato e il processo di estrazione non può continuare.If one or more objects are not supported by a DAC, then the Next button is disabled and the extraction process will not continue. In tal caso, è consigliabile rimuovere gli oggetti non supportati ed eseguire nuovamente questa procedura guidata.In such cases, it is recommended to remove the objects that are not supported and then run this wizard again.

    Salva report : consente di salvare nel riepilogo un file basato su HTML che elenca tutti gli oggetti sotto il nodo Oggetti DAC .Save Report - Enables you to save an HTML-based file that lists all of the objects under the DAC Objects node in the summary. Questo report può essere utile quando alcuni oggetti di database non sono supportati in una DAC.This report can be useful when some of your database objects are not supported in a DAC. Utilizzare il report per modificare o rimuovere gli oggetti che non sono supportati, prima di tentare di estrarre nuovamente la DAC.Use the report to change or remove objects that are not supported, before trying to extract the DAC again.

    Build package page Build package page

    Utilizzare questa pagina per monitorare l'avanzamento della procedura guidata durante l'estrazione dell'applicazione livello dati.Use this page to monitor the progress of the wizard as it extracts the data-tier application (DAC).

    Azione : durante l'azione Crea e salva il file del pacchetto di applicazione livello dati , la procedura guidata estrae un'applicazione livello dati dal database SQL Server.Action - During the Create and save DAC package file action, the wizard extracts a DAC from your SQL Server database. Quindi, nella memoria viene creato un pacchetto di applicazione livello dati che viene salvato nel percorso specificato.Then, a DAC package is created in memory and saved to the location you specified. Fare clic sui collegamenti nella colonna Risultato per vedere il risultato del passaggio corrispondente.Click on the links in the Result column to see the outcome of the corresponding step.

    Salva report fare clic per salvare i risultati dello stato della procedura guidata in un file.Save Report - Click to save the results of the wizard's progress to a file.

    Fine fare clic per chiudere la procedura guidata una volta completata o se si verifica un errore.Finish - Click to close the wizard after processing has completed, or if an error occurs.

Estrarre un'applicazione livello dati con PowerShell Extract a DAC using PowerShell

Per estrarre un'applicazione livello dati da un database con il metodo Extract() in uno script di PowerShellTo extract a DAC from a database using the Extract() method in a PowerShell script

  1. Creare un oggetto server SMO e impostarlo sull'istanza contenente il database da cui si desidera estrarre l'applicazione livello dati.Create a SMO Server object and set it to the instance that contains the database from which the DAC is to be extracted.

  2. Aggiungere una variabile che specifichi il nome del database.Add a variable that specifies the name of the database.

  3. Specificare i metadati per l'applicazione livello dati, quali nome dell'applicazione livello dati, versione e descrizione.Specify the metadata for the DAC, such as the DAC name, version, and description.

  4. Specificare il percorso e il nome per il file del pacchetto di applicazione livello dati.Specify the path and file name for the extracted DAC package file.

  5. Eseguire il metodo Extract con le informazioni specificate in precedenza.Run the Extract method with the information specified above.

Esempio (PowerShell)Example (PowerShell)

L'esempio seguente estrae un'applicazione livello dati denominata MyApplication da un database denominato MyDB.The following example extracts a DAC named MyApplication from a database named MyDB.

## Set a SMO Server object to the default instance on the local computer.  
CD SQLSERVER:\SQL\localhost\DEFAULT  
$srv = get-item .  

## Specify the database to extract to a DAC.  
$dbname = "MyDB"  

## Specify the DAC metadata.  
$applicationname = "MyApplication"  
$version = "1.0.0.0"  
$description = "This DAC defines the database used by my application."  

## Specify the location and name for the extracted DAC package.  
$dacpacPath = "C:\MyDACs\MyApplication.dacpac"  

## Extract the DAC.  
$extractionunit = New-Object Microsoft.SqlServer.Management.Dac.DacExtractionUnit($srv, $dbname, $applicationname, $version)  
$extractionunit.Description = $description  
$extractionunit.Extract($dacpacPath)  

Vedere ancheSee also

Applicazioni livello datiData-tier Applications