Esportazione di un inventario di Access (AccessToSQL)Exporting an Access Inventory (AccessToSQL)

Se si dispone di più database di Access e non si sono certi che quelli per eseguire la migrazione in SQL ServerSQL Server, è possibile esportare un inventario di tutti i database di Access in un progetto.If you have multiple Access databases and you are not sure which ones to migrate into SQL ServerSQL Server, you can export an inventory of all Access databases in a project. È quindi possibile esaminare e ottenere i metadati di inventario per determinare quali database e gli oggetti presenti in tali database per eseguire la migrazione.You can then review and query the inventory metadata to determine which databases and objects within those databases to migrate. L'inventario è possibile rapidamente trovare le risposte alle domande, ad esempio il seguente:This inventory lets you quickly find answers to questions, such as the following:

  • Quali sono i database più grandi?What are the largest databases?

  • Chi possiede la maggior parte dei database?Who owns most of the databases?

  • I database che contengono le stesse tabelle?Which databases contain the same tables?

  • I database che non sono stati modificati negli ultimi sei mesi?Which databases have not been modified in the last six months?

  • I database che contengono informazioni riservate?Which databases contain private information?

Alla fine di questo argomento vengono forniti esempi di query che consentono di rispondere a queste domande.Query examples that are used to answer these questions are provided at the end of this topic.

Metadati esportatiExported Metadata

SSMA consente di esportare i metadati relativi a accesso database, tabelle, colonne, indici, chiavi esterne, le query, report, form, macro e i moduli.SSMA exports metadata about Access databases, tables, columns, indexes, foreign keys, queries, reports, forms, macros, and modules. I metadati relativi a ognuna di queste categorie di elementi vengono esportati in una tabella separata.Metadata about each of these categories of items is exported to a separate table. Per gli schemi di queste tabelle, vedere schemi di inventario di Access.For schemas of these tables, see Access Inventory Schemas.

Esportazione dei dati di inventarioExporting Inventory Data

Per esportare un inventario di Access, è necessario prima di tutto aprire o creare un progetto SSMA e quindi aggiungere il database di Access che si desidera analizzare.To export an Access inventory, you must first open or create an SSMA project, and then add the Access database that you want to analyze. Dopo aver aggiunto i database a un progetto SSMA, è esportare i metadati relativi a tali database per un determinato SQL ServerSQL Server database e nello schema.After you add databases to an SSMA project, you export metadata about those databases to a specified SQL ServerSQL Server database and schema. Se necessario, SSMA consente di creare tabelle per archiviare i metadati.If necessary, SSMA creates tables to store the metadata. SSMA aggiunge quindi i metadati sui database di Access per il SQL ServerSQL Server database.SSMA then adds the metadata about the Access databases to the SQL ServerSQL Server database.

Nota

Un database di Access può essere suddivisa in più file: un database back-end che contiene le tabelle e i database front-end contenenti query, form, i report, le macro, moduli e tasti di scelta rapida.An Access database can be split into multiple files: a back-end database that contains tables and front-end databases that contain queries, forms, reports, macros, modules, and shortcuts. Se si vuole eseguire la migrazione di un database di split a SQL ServerSQL Server, aggiungere i database front-end in SSMA.If you want to migrate a split database to SQL ServerSQL Server, add the front-end database to SSMA.

Le istruzioni seguenti descrivono come creare un progetto, aggiungere database al progetto, connettersi a SQL ServerSQL Servere quindi esportare i dati di inventario.The following instructions describe how to create a project, add databases to the project, connect to SQL ServerSQL Server, and then export inventory data.

Per creare un progettoTo create a project

  1. Aprire SSMA per l'accesso.Open SSMA for Access.

  2. Scegliere Nuovo progetto dal menu File.On the File menu, select New Project.

    Verrà visualizzata la finestra di dialogo Nuovo progetto .The New Project dialog box appears.

  3. Nel nome immettere un nome per il progetto.In the Name box, enter a name for your project.

  4. Nel posizione casella, immettere o selezionare una cartella per il progetto.In the Location box, enter or select a folder for the project.

  5. Nel eseguire la migrazione a combinata, selezionare la versione di destinazione a cui si desidera eseguire la migrazione e quindi fare clic su OK.In the Migrate To combo box, select the target version to which you want to migrate, and then click OK.

Per altre informazioni sulla creazione di progetti, vedere creazione e gestione di progetti.For more information about creating projects, see Creating and Managing Projects.

Per trovare e aggiungere i databaseTo find and add databases

  1. Nel File menu, fare clic su trovare database.On the File menu, click Find Databases.

  2. In Creazione guidata database di ricerca, immettere l'unità, percorso del file o percorso UNC che si desidera cercare.In the Find Databases Wizard, enter the drive, file path, or the UNC path that you want to search. In alternativa, fare clic su esplorare per selezionare l'unità o cartella di rete.Alternatively, click Browse to select the drive or network folder.

  3. Fare clic su Add per aggiungere il percorso nella casella di riepilogo.Click Add to add the location to the list box.

    Ripetere i due passaggi precedenti per aggiungere percorsi di ricerca aggiuntive.Repeat the previous two steps to add additional search locations.

  4. Facoltativamente, aggiungere criteri di ricerca per restringere l'elenco di database che vengono restituiti.Optionally, add search criteria to refine the list of databases that are returned.

    Importante

    Il tutto o parte del nome del file casella di testo non supporta caratteri jolly.The All or part of the file name text box does not support wildcard characters.

  5. Fare clic su Scan.Click Scan.

    Viene visualizzata la pagina di analisi.The Scan page appears. Vengono visualizzati i database che sono stati trovati e lo stato di avanzamento di ricerca.This shows the databases that have been found and the search progress. Per arrestare la ricerca, fare clic su arrestare.To stop the search, click Stop.

  6. Nella pagina Seleziona file, selezionare ogni database che si desidera aggiungere al progetto.On the Select Files page, select the each database that you want to add to the project.

    È possibile usare la Seleziona tutto e Clear All pulsanti nella parte superiore dell'elenco per selezionare o deselezionare tutti i database.You can use the Select All and Clear All buttons at the top of the list to select or clear all databases. È anche possibile tenere premuto il tasto CTRL per selezionare più righe o tenere premuto il tasto MAIUSC basso per selezionare un intervallo di righe.You can also hold the CTRL key down to select multiple rows, or hold the SHIFT key down to select a range of rows.

  7. Scegliere Avanti.Click Next.

  8. Nella pagina di verifica, fare clic su fine.On the Verify page, click Finish.

Per altre informazioni sull'aggiunta di database per i progetti, vedere aggiunta e rimozione di file di Database di Access.For more information about adding databases to projects, see Adding and Removing Access Database Files.

Per connettersi a SQL ServerTo connect to SQL Server

  1. Nel File dal menu Connetti al Server SQL.On the File menu, select Connect to SQL Server.

  2. Nella finestra di dialogo di connessione, immettere o selezionare il nome dell'istanza di SQL ServerSQL Server.In the connection dialog box, enter or select the name of the instance of SQL ServerSQL Server.

    • Se ci si connette all'istanza predefinita nel computer locale, è possibile immettere localhost o un punto (.).If you are connecting to the default instance on the local computer, you can enter localhost or a dot (.).

    • Se ci si connette all'istanza predefinita in un altro computer, immettere il nome del computer.If you are connecting to the default instance on another computer, enter the name of the computer.

    • Se ci si connette a un'istanza denominata, immettere il nome del computer, una barra rovesciata e il nome dell'istanza.If you are connecting to a named instance, enter the computer name, a backslash, and the instance name. Ad esempio: MyServer\MyInstance.For example: MyServer\MyInstance.

  3. Nel Database immettere il nome del database di destinazione per i metadati esportati.In the Database box, enter the name of the target database for exported metadata.

  4. Se l'istanza di SQL ServerSQL Server è configurato per accettare le connessioni su una porta non predefinito, immettere il numero di porta usato per SQL ServerSQL Server connessioni nel porta Server casella.If your instance of SQL ServerSQL Server is configured to accept connections on a non-default port, enter the port number that is used for SQL ServerSQL Server connections in the Server port box. Per l'istanza predefinita di SQL ServerSQL Server, il numero di porta predefinito è 1433.For the default instance of SQL ServerSQL Server, the default port number is 1433. Per le istanze denominate, SSMA tenta di ottenere il numero di porta dal SQL ServerSQL Server servizio Browser.For named instances, SSMA tries to obtain the port number from the SQL ServerSQL Server Browser Service.

  5. Nel autenticazione -menu a discesa, seleziona il tipo di autenticazione da usare per la connessione.In the Authentication drop-down menu, select the authentication type to use for the connection. Per usare l'account di Windows corrente, selezionare Windows autenticazione.To use the current Windows account, select Windows Authentication. Usare un SQL ServerSQL Server account di accesso, selezionare autenticazione di SQL Servere quindi specificare un nome utente e password.To use a SQL ServerSQL Server login, select SQL Server Authentication, and then provide a user name and password.

Per altre informazioni sulla connessione a SQL ServerSQL Server, vedere ci si connette a SQL Server (AccessToSQL).For more information about connecting to SQL ServerSQL Server, see Connecting to SQL Server (AccessToSQL).

Per esportare le informazioni di inventarioTo export inventory information

  1. Nel Visualizzatore metadati di accesso, espandere accesso metabase.In Access Metadata Explorer, expand Access-metabase.

  2. Selezionare la casella di controllo accanto a database.Select the check box next to Databases.

    Per omettere i singoli database o oggetti di database, espandere la database cartella e quindi deselezionare la casella di controllo accanto al database o un oggetto di database.To omit individual databases or database objects, expand the Databases folder, and then clear the check box next to the database or database object.

  3. Fare doppio clic su database e selezionare esportare Schema.Right-click Databases and select Export Schema.

  4. Nel selezionare uno Schema per l'esportazione finestra di dialogo, selezionare lo schema di destinazione per i metadati esportati e quindi fare clic su OK.In the Select Schema for Export dialog box, select the target schema for the exported metadata, and then click OK.

Ogni volta che si esporta i metadati, SSMA accoda i dati per l'inventario.Each time you export metadata, SSMA appends the data to the inventory. I dati esistenti nell'inventario non viene aggiornati o eliminati.Existing data in the inventory is not updated or deleted.

L'esecuzione di query i metadati esportatiQuerying the Exported Metadata

Dopo avere esportato i metadati relativi a database di Access, è possibile eseguire una query dei metadati.After you export metadata about Access databases, you can query the metadata. Le istruzioni seguenti viene descritto come per utilizzare la finestra dell'Editor di Query in SQL Server Management StudioSQL Server Management Studio per eseguire query.The following instructions describe to use the Query Editor window in SQL Server Management StudioSQL Server Management Studio to run queries.

Eseguire query sui metadatiTo query metadata

  1. Dal avviare dal menu tutti i programmi, scegliere Microsoft SQL ServerSQL Server 2005 oppure a Microsoft SQL ServerSQL Server 2008o a Microsoft SQL ServerSQL Server 2012, quindi fare clic su SQL Server Management Studio.From the Start menu, point to All Programs, point to Microsoft SQL ServerSQL Server 2005 or to Microsoft SQL ServerSQL Server 2008 or to Microsoft SQL ServerSQL Server 2012, and then click SQL Server Management Studio.

  2. Nel Connetti al Server finestra di dialogo, verificare le impostazioni e quindi fare clic su Connect.In the Connect to Server dialog box, verify the settings, and then click Connect.

  3. Sulla barra degli strumenti Management Studio, fare clic su nuova Query per aprire l'Editor di Query.On the Management Studio toolbar, click New Query to open Query Editor.

  4. Nella finestra dell'Editor di Query, immettere una query.In the Query Editor window, enter a query. Nella sezione seguente vengono illustrati alcuni esempi.Some examples are shown in the following section.

  5. Premere il tasto F5 per eseguire la query.Press the F5 key to run the query.

Esempi di queryQuery Examples

Prima di eseguire una delle query seguenti, è consigliabile eseguire un uso database_name query per assicurarsi che le query vengono eseguite sul database che contiene i metadati esportati.Before you run any of the following queries, you should run a USE database_name query to make sure the queries are run against the database that contains the exported metadata. Ad esempio, se in un database denominato MyAccessMetadata esportato i metadati, aggiungere quanto segue all'inizio del Transact-SQLTransact-SQL codice:For example, if you exported metadata to a database named MyAccessMetadata, you would add the following at the beginning of the Transact-SQLTransact-SQL code:

USE MyAccessMetadata;  
GO  

Tutti gli esempi seguenti usano il dbo dello schema.The following examples all use the dbo schema. Se si esportato i metadati in un altro schema, assicurarsi di modificare lo schema quando si eseguono tali query.If you exported the metadata to another schema, make sure to change the schema when you run these queries.

Quali tabelle e colonne si trovano in questi database?What tables and columns are in these databases?

La query seguente unisce le tabelle che contengono colonne, tabelle e i metadati del database e quindi restituisce i nomi di tutti i database, tabelle e colonne, ordinati in base al nome di colonna:The following query joins the tables that contain column, table, and database metadata, and then returns the names of all databases, tables, and columns, sorted by column name:

SELECT DatabaseName, TableName, ColumnName   
FROM dbo.SSMA_Access_InventoryColumns C  
JOIN dbo.SSMA_Access_InventoryTables T  
ON C.TableId = T.TableId  
JOIN dbo.SSMA_Access_InventoryDatabases D  
ON T.DatabaseId = D.DatabaseId  
ORDER BY ColumnName;  

Quali sono i database più grandi?What are the largest databases?

La query seguente restituisce il nome del database, dimensioni del file e numero di tabelle in ogni database di Access, ordinati per dimensioni file:The following query returns the database name, file size, and number of tables in each Access database, sorted by file size:

SELECT DatabaseName, FileSize, TablesCount  
FROM dbo.SSMA_Access_InventoryDatabases  
ORDER BY FileSize DESC;  

Chi è il proprietario della maggior parte dei database?Who is the owner of most of the databases?

La query seguente restituisce il nome del database e il proprietario di ogni database di Access, ordinati dal proprietario.The following query returns the database name and owner of each Access database, sorted by owner.

SELECT DatabaseName, FileOwner  
FROM dbo.SSMA_Access_InventoryDatabases  
ORDER BY FileOwner;  

I database che contengono le stesse tabelle?Which databases contain the same tables?

La query seguente viene utilizzata una sottoquery per trovare tutti i nomi delle tabelle che vengono visualizzati più volte nell'elenco di tabelle e quindi Usa questo elenco di tabelle per ottenere il nome del database.The following query uses a subquery to find all table names that appear more than once in the list of tables, and then uses this list of tables to get the database name. I risultati vengono restituiti come il nome del database e quindi il nome della tabella e sono ordinati in base al nome di tabella.The results are returned as the database name and then the table name, and are sorted by table name.

SELECT DatabaseName, TableName   
FROM dbo.SSMA_Access_InventoryTables T  
JOIN dbo.SSMA_Access_InventoryDatabases D  
ON D.DatabaseId = T.DatabaseId  
WHERE TableName IN (  
SELECT TableName   
FROM dbo.SSMA_Access_InventoryTables  
GROUP BY TableName   
HAVING count(*)>1  
)  
ORDER BY TableName;  

I database che non sono stati modificati negli ultimi sei mesi?Which databases were not modified in the last six months?

La query seguente ottiene la data corrente, ottiene il valore del mese per sei mesi fa e quindi restituisce un elenco di database con una data di modifica maggiore di sei mesi fa.The following query gets the current date, gets the month value for six months ago, and then returns a list of databases with a modified date of greater than six months ago.

SELECT DatabaseName, DateModified  
FROM dbo.SSMA_Access_InventoryDatabases  
WHERE DATEDIFF(month, DateModified, GETDATE()) > 6  
ORDER BY DateModified;  

I database che contengono informazioni riservate?Which databases contain private information?

I database di Access potrebbero contenere informazioni sensibili o personale.Your Access databases might contain sensitive or personal information. È possibile spostare questi database a SQL ServerSQL Server per sfruttare le funzionalità di sicurezza.You might want to move these databases to SQL ServerSQL Server to take advantage of its security features. Se si sa che hanno un nome specifico colonne contenenti dati sensibili o contengono caratteri specifici, è possibile usare una query per trovare tutte le colonne che contengono tali informazioni.If you know that columns containing sensitive data have a specific name, or contain specific characters, you can use a query to find all columns that contain that information. Ad esempio, è possibile trovare tutte le colonne che includono la stringa "salary".For example, you can find all columns that include the string "salary". La query restituisce quindi il nome del database, nome della tabella e il nome di colonna.The query then returns the database name, table name, and column name.

SELECT DatabaseName, TableName, ColumnName   
FROM dbo.SSMA_Access_InventoryColumns C  
JOIN dbo.SSMA_Access_InventoryTables T  
ON C.TableId = T.TableId  
JOIN dbo.SSMA_Access_InventoryDatabases D  
ON T.DatabaseId = D. DatabaseId  
WHERE ColumnName LIKE '%salary%';  

Se non si conosce il nome della colonna, è possibile scrivere una query per restituire tutte le colonne.If you do not know the column name, you can write a query to return all columns. A tale scopo, rimuovere la clausola WHERE dalla query precedente.To do this, remove the WHERE clause from the previous query.

Vedere ancheSee Also

Preparazione dei database di Access per la migrazionePreparing Access Databases for Migration