Sdílet prostřednictvím


Export inventáře Accessu (AccessToSQL)

Pokud máte více databází Accessu a nevíte, které databáze se mají migrovat na SQL Server, můžete v projektu exportovat inventář všech databází Accessu. Pak můžete zkontrolovat a dotazovat metadata inventáře a určit, které databáze a objekty v těchto databázích se mají migrovat. Tento inventář umožňuje rychle najít odpovědi na otázky, jako je například následující seznam:

  • Co jsou největší databáze?
  • Kdo vlastní většinu databází?
  • Které databáze obsahují stejné tabulky?
  • Které databáze se za posledních šest měsíců nezměnily?
  • Které databáze obsahují soukromé informace?

Příklady dotazů, které slouží k zodpovězení těchto otázek, najdete na konci tohoto článku.

Exportovaná metadata

SSMA exportuje metadata o accessových databázích, tabulkách, sloupcích, indexech, cizích klíčích, dotazech, sestavách, formulářích, makrech a modulech. Metadata o každé z těchto kategorií položek se exportují do samostatné tabulky. Schémata těchto tabulek najdete v tématu Schémata inventáře přístupu.

Export dat inventáře

Pokud chcete exportovat inventář Accessu, musíte nejdřív otevřít nebo vytvořit projekt SSMA a pak přidat accessovou databázi, kterou chcete analyzovat. Po přidání databází do projektu SSMA exportujete metadata o těchto databázích do zadané databáze a schématu SQL Serveru. V případě potřeby SSMA vytvoří tabulky pro uložení metadat. SSMA pak přidá metadata o databázích Accessu do databáze SQL Serveru.

Poznámka

Accessovou databázi je možné rozdělit do několika souborů: back-endová databáze, která obsahuje tabulky a front-end databáze, které obsahují dotazy, formuláře, sestavy, makra, moduly a zástupce. Pokud chcete migrovat rozdělenou databázi na SQL Server, přidejte front-end databázi do SSMA.

Následující pokyny popisují, jak vytvořit projekt, přidat databáze do projektu, připojit se k SQL Serveru a pak exportovat data inventáře.

Vytvoření projektu

  1. Otevřete SSMA pro Access.

  2. V nabídce Soubor vyberte Nový projekt.

    Zobrazí se dialogové okno Nový projekt.

  3. Do pole Název zadejte název projektu.

  4. Do pole Umístění zadejte nebo vyberte složku projektu.

  5. V kombinovaném poli Migrovat na vyberte cílovou verzi, do které chcete migrovat, a pak vyberte OK.

Další informace o vytváření projektů naleznete v tématu Vytváření a správa projektů.

Vyhledání a přidání databází

  1. V nabídce Soubor vyberte Najít databáze.

  2. V Průvodci hledáním databází zadejte disk, cestu k souboru nebo cestu UNC, kterou chcete vyhledat. Případně vyberte Procházet a vyberte jednotku nebo síťovou složku.

  3. Vyberte , poté klikněte na Přidat a přidejte umístění do seznamu.

    Opakujte předchozí dva kroky a přidejte další umístění hledání.

  4. Volitelně můžete přidat kritéria hledání pro upřesnění seznamu vrácených databází.

    Důležitý

    Textové pole Název souboru nebo jeho část nepodporuje zástupné znaky.

  5. Vyberte Skenování.

    Zobrazí se stránka Skenování. Zobrazí se databáze, které byly nalezeny, a průběh hledání. Pokud chcete hledání zastavit, vyberte Zastavit.

  6. Na stránce Vybrat soubory vyberte každou databázi, kterou chcete přidat do projektu.

    Pomocí tlačítek Vybrat vše a Vymazat vše v horní části seznamu můžete vybrat nebo vymazat všechny databáze. Stisknutím klávesy CTRL můžete vybrat více řádků nebo stisknutím klávesy SHIFT vybrat oblast řádků.

  7. Vyberte Další.

  8. Na stránce Ověření klikněte na Dokončit.

Další informace o přidávání databází do projektů naleznete v tématu Přidání a odebrání přístupových databázových souborů.

Připojení k SQL Serveru

  1. V nabídce Soubor vyberte Připojit k SQL Serveru.

  2. V dialogovém okně připojení zadejte nebo vyberte název instance SQL Serveru.

    • Pokud se připojujete k výchozí instanci v místním počítači, můžete zadat localhost nebo tečku (.).

    • Pokud se připojujete k výchozí instanci na jiném počítači, zadejte název počítače.

    • Pokud se připojujete k pojmenované instanci, zadejte název počítače, zpětné lomítko a název instance. Například: MyServer\MyInstance.

  3. Do pole Databáze zadejte název cílové databáze pro exportovaná metadata.

  4. Pokud je vaše instance SQL Serveru nakonfigurovaná tak, aby přijímala připojení na nestandardním portu, zadejte číslo portu, které se používá pro připojení k SQL Serveru, do pole portu Serveru. Pro výchozí instanci SQL Serveru je výchozí číslo portu 1433. U pojmenovaných instancí se SSMA pokusí získat číslo portu ze služby SQL Server Browser Service.

  5. V rozevíracím seznamu Ověřování vyberte typ ověřování, který chcete použít pro připojení. Pokud chcete použít aktuální účet systému Windows, vyberte ověřování systému Windows. Pokud chcete použít přihlášení k SQL Serveru, vyberte Ověřování SQL Servera zadejte uživatelské jméno a heslo.

Další informace o připojení k SQL Serveru naleznete v tématu Připojení k SQL Serveru (AccessToSQL).

Export informací o inventáři

  1. V Access Metadata Explorer rozbalte Access-metabáze.

  2. Zaškrtněte políčko vedle položky Databáze.

    Pokud chcete vynechat jednotlivé databáze nebo databázové objekty, rozbalte složku Databáze a zrušte zaškrtnutí políčka vedle databázového objektu nebo databáze.

  3. Klepněte pravým tlačítkem myši Databáze a vyberte Exportovat schéma.

  4. V dialogovém okně Vyberte schéma pro export vyberte cílové schéma pro exportovaná metadata a pak vyberte OK.

Při každém exportu metadat připojí SSMA data do inventáře. Existující data v inventáři se neaktualizují ani neodstraní.

Dotazování na exportovaná metadata

Po exportu metadat o databázích Accessu se můžete dotazovat na metadata. Následující pokyny popisují použití okna Editoru dotazů v aplikaci SQL Server Management Studio ke spouštění dotazů.

Metadata dotazů

  1. V nabídce Start přejděte na Všechny programy, přejděte na Microsoft SQL Server 2005 nebo Microsoft SQL Server 2008 nebo Microsoft SQL Server 2012a pak vyberte SQL Server Management Studio.

  2. V dialogovém okně Připojit k serveru ověřte nastavení a pak vyberte Připojit.

  3. Na panelu nástrojů Management Studio vyberte Nový dotaz a otevřete Editor dotazů.

  4. V okně Editoru dotazů zadejte dotaz. Některé příklady jsou uvedené v následující části.

  5. Stisknutím klávesy F5 spusťte dotaz.

Příklady dotazů

Před spuštěním některého z následujících dotazů byste měli spustit dotaz USE database_name, abyste měli jistotu, že se dotazy spouštějí v databázi, která obsahuje exportovaná metadata. Pokud jste například exportovali metadata do databáze s názvem MyAccessMetadata, na začátek kódu Transact-SQL byste přidali následující příkaz:

USE MyAccessMetadata;
GO

Následující příklady používají schéma dbo. Pokud jste metadata exportovali do jiného schématu, nezapomeňte při spuštění těchto dotazů změnit schéma.

Jaké tabulky a sloupce jsou v těchto databázích?

Následující dotaz spojí tabulky obsahující metadata sloupců, tabulek a databází a vrátí názvy všech databází, tabulek a sloupců seřazených podle názvu sloupce:

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;

Co jsou největší databáze?

Následující dotaz vrátí název databáze, velikost souboru a počet tabulek v každé accessové databázi seřazené podle velikosti souboru:

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

Kdo je vlastníkem většiny databází?

Následující dotaz vrátí název databáze a vlastníka každé accessové databáze seřazené podle vlastníka.

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

Které databáze obsahují stejné tabulky?

Následující dotaz používá poddotaz k vyhledání všech názvů tabulek, které se v seznamu tabulek zobrazují více než jednou, a pak tento seznam tabulek použije k získání názvu databáze. Výsledky se vrátí jako název databáze a pak název tabulky a seřadí se podle názvu tabulky.

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;

Které databáze se v posledních šesti měsících nezměnily?

Následující dotaz získá aktuální datum, získá hodnotu měsíce před šesti měsíci a pak vrátí seznam databází s změněným datem před šesti měsíci.

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

Které databáze obsahují soukromé informace?

Databáze Accessu můžou obsahovat citlivé nebo osobní údaje. Tyto databáze můžete přesunout na SQL Server, abyste mohli využívat jeho funkce zabezpečení. Pokud víte, že sloupce obsahující citlivá data mají konkrétní název nebo obsahují určité znaky, můžete pomocí dotazu najít všechny sloupce, které tyto informace obsahují. Můžete například najít všechny sloupce, které obsahují řetězec "plat". Dotaz pak vrátí název databáze, název tabulky a název sloupce.

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%';

Pokud název sloupce neznáte, můžete napsat dotaz, který vrátí všechny sloupce. Uděláte to tak, že odeberete klauzuli WHERE z předchozího dotazu.

Viz také