Freigeben über


Exportieren eines Access-Inventars (AccessToSQL)

Wenn Sie über mehrere Access-Datenbanken verfügen und nicht sicher sind, welche Datenbanken in SQL Server migriert werden sollen, können Sie einen Bestand aller Access-Datenbanken in einem Projekt exportieren. Anschließend können Sie die Bestandsmetadaten überprüfen und abfragen, um zu bestimmen, welche Datenbanken und Objekte innerhalb dieser Datenbanken migriert werden sollen. Mit diesem Bestand können Sie schnell Antworten auf Fragen finden, z. B. die folgende Liste:

  • Was sind die größten Datenbanken?
  • Wer besitzt die meisten Datenbanken?
  • Welche Datenbanken enthalten dieselben Tabellen?
  • Welche Datenbanken wurden in den letzten sechs Monaten nicht geändert?
  • Welche Datenbanken enthalten private Informationen?

Abfragebeispiele, die zum Beantworten dieser Fragen verwendet werden, werden am Ende dieses Artikels bereitgestellt.

Exportierte Metadaten

SSMA exportiert Metadaten zu Access-Datenbanken, Tabellen, Spalten, Indizes, Fremdschlüsseln, Abfragen, Berichten, Formularen, Makros und Modulen. Metadaten zu jeder dieser Kategorien von Elementen werden in eine separate Tabelle exportiert. Schemas dieser Tabellen finden Sie unter Access Inventory Schemas.

Exportieren von Bestandsdaten

Zum Exportieren eines Access-Inventars müssen Sie zuerst ein SSMA-Projekt öffnen oder erstellen und dann die Access-Datenbank hinzufügen, die Sie analysieren möchten. Nachdem Sie einem SSMA-Projekt Datenbanken hinzugefügt haben, exportieren Sie Metadaten zu diesen Datenbanken in eine angegebene SQL Server-Datenbank und ein angegebenes Schema. Bei Bedarf erstellt SSMA Tabellen zum Speichern der Metadaten. SSMA fügt dann die Metadaten zu den Access-Datenbanken zur SQL Server-Datenbank hinzu.

Hinweis

Eine Access-Datenbank kann in mehrere Dateien aufgeteilt werden: eine Back-End-Datenbank, die Tabellen und Front-End-Datenbanken enthält, die Abfragen, Formulare, Berichte, Makros, Module und Verknüpfungen enthalten. Wenn Sie eine geteilte Datenbank zu SQL Server migrieren möchten, fügen Sie die Front-End-Datenbank zu SSMA hinzu.

In den folgenden Anweisungen wird beschrieben, wie Sie ein Projekt erstellen, dem Projekt Datenbanken hinzufügen, eine Verbindung mit SQL Server herstellen und dann Bestandsdaten exportieren.

Erstellen eines Projekts

  1. Öffnen Sie SSMA für Access.

  2. Wählen Sie im Menü Datei die Option Neues Projekt aus.

    Das Dialogfeld Neues Projekt wird angezeigt.

  3. Geben Sie im Feld "Name " einen Namen für Ihr Projekt ein.

  4. Geben Sie im Feld "Speicherort " einen Ordner für das Projekt ein, oder wählen Sie ihn aus.

  5. Wählen Sie im Kombinationsfeld "Migrieren nach " die Zielversion aus, zu der Sie migrieren möchten, und wählen Sie dann "OK" aus.

Weitere Informationen zum Erstellen von Projekten finden Sie unter Erstellen und Verwalten von Projekten.

Suchen und Hinzufügen von Datenbanken

  1. Wählen Sie im Menü "Datei" die Option "Datenbanken suchen" aus.

  2. Geben Sie im Assistenten zum Suchen von Datenbanken das Laufwerk, den Dateipfad oder den UNC-Pfad ein, den Sie durchsuchen möchten. Wählen Sie alternativ " Durchsuchen" aus, um das Laufwerk oder den Netzwerkordner auszuwählen.

  3. Wählen Sie "Hinzufügen" aus, um dem Listenfeld den Speicherort hinzuzufügen.

    Wiederholen Sie die beiden vorherigen Schritte, um weitere Suchspeicherorte hinzuzufügen.

  4. Fügen Sie optional Suchkriterien hinzu, um die Liste der zurückgegebenen Datenbanken zu verfeinern.

    Wichtig

    Das Textfeld "Alle" oder ein Teil des Textfelds "Dateiname" unterstützt keine Wildzeichen Karte.

  5. Wählen Sie " Scannen" aus.

    Die Seite "Scan" wird angezeigt. Dies zeigt die Datenbanken an, die gefunden wurden, und den Suchfortschritt. Um die Suche zu beenden, wählen Sie "Beenden" aus.

  6. Wählen Sie auf der Seite "Dateien auswählen" jede Datenbank aus, die Sie dem Projekt hinzufügen möchten.

    Sie können die Schaltflächen "Alle auswählen" und "Alle löschen" oben in der Liste verwenden, um alle Datenbanken auszuwählen oder zu löschen. Sie können auch die STRG-TASTE gedrückt halten, um mehrere Zeilen auszuwählen, oder die UMSCHALTTASTE gedrückt halten, um einen Zeilenbereich auszuwählen.

  7. Wählen Sie Weiter aus.

  8. Wählen Sie auf der Seite "Überprüfen" die Option "Fertig stellen" aus.

Weitere Informationen zum Hinzufügen von Datenbanken zu Projekten finden Sie unter Hinzufügen und Entfernen von Access-Datenbankdateien.

Verbindung mit SQL Server herstellen

  1. Wählen Sie im Menü "Datei" Verbinden zu SQL Server aus.

  2. Geben Sie im Dialogfeld "Verbindung" den Namen der Instanz von SQL Server ein, oder wählen Sie ihn aus.

    • Wenn Sie eine Verbindung mit der Standardinstanz auf dem lokalen Computer herstellen, können Sie localhost oder einen Punkt (.) eingeben.

    • Wenn Sie eine Verbindung mit der Standardinstanz auf einem anderen Computer herstellen, geben Sie den Namen des Computers ein.

    • Wenn Sie eine Verbindung mit einer benannten Instanz herstellen, geben Sie den Computernamen, einen umgekehrten Schrägstrich und den Instanznamen ein. Beispiel: MyServer\MyInstance.

  3. Geben Sie im Feld "Datenbank " den Namen der Zieldatenbank für exportierte Metadaten ein.

  4. Wenn Ihre SQL Server-Instanz so konfiguriert ist, dass Verbindungen auf einem nicht standardmäßigen Port akzeptiert werden, geben Sie die Portnummer ein, die für SQL Server-Verbindungen im Serverportfeld verwendet wird. Für die Standardinstanz von SQL Server lautet die Standardportnummer 1433. Für benannte Instanzen versucht SSMA, die Portnummer aus dem SQL Server-Browserdienst abzurufen.

  5. Wählen Sie in der Dropdownliste "Authentifizierung " den Authentifizierungstyp aus, der für die Verbindung verwendet werden soll. Um das aktuelle Windows-Konto zu verwenden, wählen Sie die Windows-Authentifizierung aus. Um eine SQL Server-Anmeldung zu verwenden, wählen Sie die SQL Server-Authentifizierung aus, und geben Sie dann einen Benutzernamen und ein Kennwort ein.

Weitere Informationen zum Herstellen einer Verbindung mit SQL Server finden Sie unter Verbinden ing mit SQL Server (AccessToSQL).For more information about connecting to SQL Server, see Verbinden ing to SQL Server (AccessToSQL).

Exportieren von Bestandsinformationen

  1. Erweitern Sie im Access-Metadaten-Explorer die Access-Metabasis.

  2. Aktivieren Sie das Kontrollkästchen neben "Datenbanken".

    Wenn Sie einzelne Datenbanken oder Datenbankobjekte weglassen möchten, erweitern Sie den Ordner "Datenbanken ", und deaktivieren Sie dann das Kontrollkästchen neben dem Datenbank- oder Datenbankobjekt.

  3. Klicken Sie mit der rechten Maustaste auf Datenbanken, und wählen Sie "Schema exportieren" aus.

  4. Wählen Sie im Dialogfeld "Schema für Export auswählen" das Zielschema für die exportierten Metadaten und dann "OK" aus.

Jedes Mal, wenn Sie Metadaten exportieren, fügt SSMA die Daten an den Bestand an. Vorhandene Daten im Bestand werden nicht aktualisiert oder gelöscht.

Abfragen der exportierten Metadaten

Nachdem Sie Metadaten zu Access-Datenbanken exportiert haben, können Sie die Metadaten abfragen. Die folgenden Anweisungen beschreiben die Verwendung des Abfrage-Editor-Fensters in SQL Server Management Studio zum Ausführen von Abfragen.

Abfragen von Metadaten

  1. Zeigen Sie im Startmenü auf "Alle Programme", zeigen Sie auf Microsoft SQL Server 2005 oder auf Microsoft SQL Server 2008 oder auf Microsoft SQL Server 2012, und wählen Sie dann SQL Server Management Studio aus.

  2. Überprüfen Sie im Dialogfeld Verbinden zu Server die Einstellungen, und wählen Sie dann Verbinden aus.

  3. Wählen Sie auf der Management Studio-Symbolleiste "Neue Abfrage" aus, um Abfrage-Editor zu öffnen.

  4. Geben Sie im fenster Abfrage-Editor eine Abfrage ein. Einige Beispiele werden im folgenden Abschnitt gezeigt.

  5. Drücken Sie F5, um die Abfrage auszuführen.

Abfragebeispiele

Bevor Sie eine der folgenden Abfragen ausführen, sollten Sie eine USE-database_name Abfrage ausführen, um sicherzustellen, dass die Abfragen für die Datenbank ausgeführt werden, die die exportierten Metadaten enthält. Wenn Sie beispielsweise Metadaten in eine Datenbank mit dem Namen MyAccessMetadata exportiert haben, fügen Sie am Anfang des Transact-SQL-Codes die folgende Anweisung hinzu:

USE MyAccessMetadata;
GO

In den folgenden Beispielen wird das dbo-Schema verwendet. Wenn Sie die Metadaten in ein anderes Schema exportiert haben, müssen Sie das Schema beim Ausführen dieser Abfragen ändern.

Welche Tabellen und Spalten befinden sich in diesen Datenbanken?

Die folgende Abfrage verknüpft die Tabellen, die Spalten-, Tabellen- und Datenbankmetadaten enthalten, und gibt dann die Namen aller Datenbanken, Tabellen und Spalten zurück, sortiert nach Spaltenname:

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

Was sind die größten Datenbanken?

Die folgende Abfrage gibt den Datenbanknamen, die Dateigröße und die Anzahl der Tabellen in jeder Access-Datenbank zurück, sortiert nach Dateigröße:

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

Wer ist der Besitzer der meisten Datenbanken?

Die folgende Abfrage gibt den Datenbanknamen und den Besitzer jeder Access-Datenbank zurück, sortiert nach Besitzer.

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

Welche Datenbanken enthalten dieselben Tabellen?

Die folgende Abfrage verwendet eine Unterabfrage, um alle Tabellennamen zu finden, die mehrmals in der Liste der Tabellen angezeigt werden, und verwendet dann diese Liste der Tabellen, um den Datenbanknamen abzurufen. Die Ergebnisse werden als Datenbankname und dann der Tabellenname zurückgegeben und nach Tabellenname sortiert.

SELECT DatabaseName,
    TableName
FROM dbo.SSMA_Access_InventoryTables T
INNER 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;

Welche Datenbanken wurden in den letzten sechs Monaten nicht geändert?

Die folgende Abfrage ruft das aktuelle Datum ab, ruft den Monatswert vor sechs Monaten ab und gibt dann eine Liste von Datenbanken mit einem Änderungsdatum von mehr als sechs Monaten zurück.

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

Welche Datenbanken enthalten private Informationen?

Ihre Access-Datenbanken können vertrauliche oder persönliche Informationen enthalten. Möglicherweise möchten Sie diese Datenbanken in SQL Server verschieben, um die Sicherheitsfeatures zu nutzen. Wenn Sie wissen, dass Spalten, die vertrauliche Daten enthalten, einen bestimmten Namen haben oder bestimmte Zeichen enthalten, können Sie eine Abfrage verwenden, um alle Spalten zu finden, die diese Informationen enthalten. Sie können beispielsweise alle Spalten finden, die die Zeichenfolge "Gehalt" enthalten. Die Abfrage gibt dann den Datenbanknamen, den Tabellennamen und den Spaltennamen zurück.

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

Wenn Sie den Spaltennamen nicht kennen, können Sie eine Abfrage schreiben, um alle Spalten zurückzugeben. Entfernen Sie dazu die WHERE-Klausel aus der vorherigen Abfrage.

Siehe auch