Přihlásit se pomocí účtu Microsoft
Přihlaste se nebo si vytvořte účet.
Dobrý den,
Vyberte jiný účet.
Máte více účtů.
Zvolte účet, pomocí kterého se chcete přihlásit.
Migrace databáze Accessu na SQL Server

Všichni máme omezení a databáze Accessu není výjimkou. Například databáze Accessu má limit velikosti 2 GB a nemůže podporovat více než 255 souběžných uživatelů. Takže když je čas, aby vaše databáze Accessu přešla na další úroveň, můžete migrovat na SQL Server. SQL Server (místní nebo v cloudu Azure) podporuje větší objemy dat, více souběžných uživatelů a má větší kapacitu než databázový stroj JET/ACE. Tato příručka vám poskytne hladký začátek cesty SQL Server, pomůže zachovat front-endová řešení Accessu, která jste vytvořili, a snad vás motivuje k používání Accessu pro budoucí databázová řešení. Průvodce přenesením byl z Accessu v Accessu 2013 odebrán, takže teď můžete použít Pomocník s migrací Microsoft SQL Serveru (SSMA). Pokud chcete migraci úspěšně provést, postupujte podle těchto fází.

Fáze migrace databáze do SQL Server

Než začnete

Následující části obsahují základní informace a další informace, které vám pomůžou začít.

Informace o rozdělených databázích

Všechny databázové objekty Accessu mohou být buď v jednom databázovém souboru, nebo mohou být uložené ve dvou databázových souborech: front-endové databázi a back-endové databázi. To se nazývá rozdělení databáze a je navržené tak, aby usnadnilo sdílení v síťovém prostředí. Soubor back-endové databáze smí obsahovat pouze tabulky a relace. Front-endový soubor musí obsahovat pouze všechny ostatní objekty, včetně formulářů, sestav, dotazů, maker, modulů VBA a propojených tabulek back-endové databáze. Když migrujete databázi Accessu, podobá se rozdělené databázi v SQL Server funguje jako nový back-end pro data, která se teď nacházejí na serveru.

V důsledku toho můžete i nadále udržovat databázi front-end Accessu s propojenými tabulkami SQL Server tabulek. Efektivně můžete odvodit výhody rychlého vývoje aplikací, který accessová databáze poskytuje, spolu se škálovatelností SQL Server.

SQL Server výhody

Stále potřebujete nějaké přesvědčivé migrovat na SQL Server? Tady jsou některé další výhody, o nichž je potřeba přemýšlet:

  • Více souběžných uživatelů    SQL Server dokáže zpracovat mnohem více souběžných uživatelů než Access a při přidání dalších uživatelů minimalizuje požadavky na paměť.

  • Zvýšená dostupnost    S SQL Server můžete dynamicky zálohovat databázi, ať už přírůstkovou, nebo úplnou, zatímco se používá. Není proto třeba nutit uživatele k zavření databáze, aby bylo možné vytvořit zálohu dat.

  • Vysoký výkon a škálovatelnost    Databáze SQL Server obvykle funguje lépe než databáze Accessu, zejména u velké databáze o velikosti terabajtů. Kromě toho SQL Server zpracovává dotazy mnohem rychleji a efektivně tím, že dotazy zpracovává paralelně, přičemž k zpracování požadavků uživatelů používá více nativních vláken v rámci jednoho procesu.

  • Vylepšené zabezpečení    Pomocí důvěryhodného připojení se SQL Server integruje se zabezpečením systému Windows a poskytuje jediný integrovaný přístup k síti a databázi a využívá nejlepší z obou systémů zabezpečení. Díky tomu je správa složitých schémat zabezpečení mnohem jednodušší. SQL Server je ideálním úložištěm pro citlivé informace, jako jsou čísla sociálního pojištění, údaje o platebních kartách a adresy, které jsou důvěrné.

  • Okamžitá obnovitelnost     Pokud dojde k chybovému ukončení operačního systému nebo dojde k výpadku napájení, SQL Server může automaticky obnovit databázi do konzistentního stavu během několika minut a bez zásahu správce databáze.

  • Použití sítě VPN    Přístup a virtuální privátní sítě (VPN) spolu nefungují. S SQL Server ale můžou vzdálení uživatelé dál používat front-end databázi Accessu na počítači a SQL Server back-end umístěný za bránou firewall VPN.

  • Azure SQL Server    Kromě výhod SQL Server nabízí dynamickou škálovatelnost bez výpadků, inteligentní optimalizaci, globální škálovatelnost a dostupnost, odstranění nákladů na hardware a nižší správu.

Volba nejlepší možnosti Azure SQL Server

Pokud migrujete na Azure SQL Server, můžete si vybrat ze tří možností, z nichž každá má jiné výhody:

  • Jednoúčelová databáze nebo elastické fondy    Tato možnost má vlastní sadu prostředků spravovaných prostřednictvím SQL Database serveru. Jedna databáze je jako databáze obsažená v SQL Server. Můžete také přidat elastický fond, což je kolekce databází se sdílenou sadou prostředků spravovaných prostřednictvím SQL Database serveru. Nejčastěji používané funkce SQL Server jsou k dispozici s integrovanými zálohami, opravami a obnovením. Neexistuje ale žádná zaručená přesná doba údržby a migrace z SQL Server může být náročná.

  • Spravovaná instance    Tato možnost je kolekce systémových a uživatelských databází se sdílenou sadou prostředků. Spravovaná instance je jako instance SQL Server databáze, která je vysoce kompatibilita s SQL Server místním prostředím. Spravovaná instance má integrované zálohy, opravy, obnovení a snadno se migruje z SQL Server. Existuje však malý počet SQL Server funkcí, které nejsou k dispozici, a není zaručena žádná přesná doba údržby.

  • Azure Virtual Machine    Tato možnost umožňuje spustit SQL Server ve virtuálním počítači v cloudu Azure. Máte úplnou kontrolu nad modulem SQL Server a snadnou cestou migrace. Potřebujete ale spravovat zálohy, opravy a obnovení.

Další informace najdete v tématech Volba cesty migrace databáze do Azure a Co je Azure SQL?.

První kroky

Existuje několik problémů, které můžete vyřešit předem, které vám můžou pomoct zjednodušit proces migrace před spuštěním SSMA:

  • Přidání indexů tabulek a primárních klíčů    Ujistěte se, že každá tabulka Accessu obsahuje index a primární klíč. SQL Server vyžaduje, aby všechny tabulky měly alespoň jeden index, a pokud je možné tabulku aktualizovat, musí mít propojená tabulka primární klíč.

  • Kontrola vztahů primárního a cizího klíče    Ujistěte se, že jsou tyto relace založené na polích s konzistentními datovými typy a velikostmi. SQL Server nepodporuje spojené sloupce s různými datovými typy a velikostmi v omezeních cizích klíčů.

  • Odebrání sloupce Příloha    SSMA nemigruje tabulky, které obsahují sloupec Příloha.

Před spuštěním nástroje SSMA proveďte následující první kroky.

  1. Zavřete databázi Accessu.

  2. Ujistěte se, že aktuální uživatelé připojení k databázi také databázi zavřeli.

  3. Pokud je databáze ve formátu souboru .mdb, pak odeberte zabezpečení na úrovni uživatele.

  4. Zálohujte databázi. Další informace najdete v tématu Ochrana dat pomocí procesů zálohování a obnovení.

Tip    Zvažte instalaci Microsoft SQL Server Express edice na plochu, která podporuje až 10 GB a představuje bezplatný a jednodušší způsob, jak provést migraci a zkontrolovat ji. Při připojení použijte jako instanci databáze LocalDB.

Tip    Pokud je to možné, použijte samostatnou verzi Accessu. Pokud můžete použít pouze Microsoft 365, použijte databázový stroj Accessu 2010 k migraci databáze Accessu při použití nástroje SSMA. Další informace najdete v tématu Microsoft Access Database Engine 2010 Redistributable.

Spuštění SSMA

Microsoft poskytuje Pomocník s migrací Microsoft SQL Serveru (SSMA), které usnadňují migraci. SSMA migruje hlavně tabulky a výběrové dotazy bez parametrů. Formuláře, sestavy, makra a moduly VBA se nepřevedou. Průzkumník metadat SQL Server zobrazí objekty databáze Accessu a SQL Server objekty, které vám umožní zkontrolovat aktuální obsah obou databází. Pokud se v budoucnu rozhodnete přenést další objekty, uloží se tato dvě připojení do souboru migrace.

Poznámka:    Proces migrace může nějakou dobu trvat v závislosti na velikosti databázových objektů a množství dat, která je potřeba přenést.

  1. Pokud chcete migrovat databázi pomocí nástroje SSMA, nejprve stáhněte a nainstalujte software poklikáním na stažený soubor MSI. Ujistěte se, že jste pro svůj počítač nainstalovali odpovídající 32bitovou nebo 64bitovou verzi.

  2. Po instalaci nástroje SSMA ho otevřete na ploše, nejlépe z počítače se souborem databáze Accessu.

    Můžete ho také otevřít na počítači, který má přístup k databázi Accessu ze sítě ve sdílené složce.

  3. Postupujte podle úvodních pokynů v nástroji SSMA a uveďte základní informace, jako je umístění SQL Server, databáze Accessu a migrované objekty, informace o připojení a informace o tom, jestli chcete vytvořit propojené tabulky.

  4. Pokud migrujete na SQL Server 2016 nebo novější a chcete aktualizovat propojenou tabulku, přidejte sloupec rowversion tak, že vyberete Zkontrolovat nástroje > nastavení projektu > Obecné.

    Pole Rowversion pomáhá vyhnout se konfliktům záznamů. Access používá toto pole rowversion v SQL Server propojené tabulce k určení, kdy byl záznam naposledy aktualizován. Pokud do dotazu přidáte pole rowversion, Access ho použije k opětovnému výběru řádku po operaci aktualizace. To zvyšuje efektivitu tím, že pomáhá vyhnout se chybám konfliktu zápisu a scénářům odstranění záznamů, ke kterým může dojít, když Access zjistí jiné výsledky než původní odeslání, například u datových typů čísel s plovoucí desetinou čárkou a aktivačních událostí, které upravují sloupce. Nepoužívejte ale pole rowversion ve formulářích, sestavách nebo kódu VBA. Další informace najdete v tématu Rowversion.

    Poznámka:    Vyhněte se záměně rowversion s časovými razítky. I když je časové razítko klíčového slova synonymem pro rowversion v SQL Server, nemůžete použít rowversion jako způsob, jak časového razítka položky dat.

  5. Pokud chcete nastavit přesné datové typy, vyberte Zkontrolovat nástroje > nastavení projektu > mapování typů. Pokud například ukládáte pouze anglický text, můžete místo nvarchar použít datový typ varchar.

Převod objektů

SSMA převede objekty Accessu na SQL Server objekty, ale nekopíruje je hned. SSMA poskytuje seznam následujících objektů, které se mají migrovat, abyste se mohli rozhodnout, jestli je chcete přesunout do SQL Server databáze:

  • Tabulky a sloupce

  • Vyberte Dotazy bez parametrů.

  • Primární a cizí klíče

  • Indexy a výchozí hodnoty

  • Kontrola omezení (povolit vlastnost sloupce nulové délky, ověřovací pravidlo sloupce, ověření tabulky)

Osvědčeným postupem je použít sestavu posouzení SSMA, která zobrazuje výsledky převodu, včetně chyb, upozornění, informačních zpráv, odhadů času pro provedení migrace a jednotlivých kroků opravy chyb, které je potřeba provést, než objekty skutečně přesunete.

Převod databázových objektů převezme definice objektů z metadat Accessu, převede je na ekvivalentní syntaxi jazyka Transact-SQL (T-SQL) a pak tyto informace načte do projektu. Potom můžete zobrazit SQL Server nebo SQL Azure objekty a jejich vlastnosti pomocí SQL Server nebo průzkumníka metadat SQL Azure.

Pokud chcete převést, načíst a migrovat objekty do SQL Server, postupujte podle tohoto průvodce.

Tip    Po úspěšné migraci accessové databáze uložte soubor projektu pro pozdější použití, abyste mohli znovu migrovat data pro účely testování nebo konečné migrace.

Propojení tabulek

Zvažte instalaci nejnovější verze ovladačů SQL Server OLE DB a ODBC místo použití nativních ovladačů SQL Server, které jsou součástí Windows. Nejen, že novější ovladače jsou rychlejší, ale podporují nové funkce v Azure SQL, které předchozí ovladače nepoužívají. Ovladače můžete nainstalovat do každého počítače, ve kterém se používá převedená databáze. Další informace najdete v tématech Ovladač Microsoft OLE DB 18 pro SQL Server a Ovladač Microsoft ODBC 17 pro SQL Server.

Po migraci tabulek Accessu můžete propojit tabulky v SQL Server, které teď hostují vaše data. Propojení přímo z Accessu také nabízí jednodušší způsob zobrazení dat místo použití složitějších nástrojů pro správu SQL Server.  Propojená data můžete dotazovat a upravovat v závislosti na oprávněních, která nastavil správce SQL Server databáze.

Poznámka:    Pokud při propojení s databází SQL Server vytváříte název DSN rozhraní ODBC, vytvořte stejný název DSN na všech počítačích, které používají novou aplikaci, nebo programově použijte připojovací řetězec uložený v souboru DSN.

Další informace najdete v tématech Propojení nebo import dat z databáze Azure SQL Serveru a Import nebo propojení dat v databázi SQL Server.

Tip   Nezapomeňte použít Správce propojených tabulek v Accessu, abyste mohli tabulky pohodlně aktualizovat a znovu propojit. Další informace najdete v tématu Správa propojených tabulek.

Testování a revize

Následující části popisují běžné problémy, se kterými se můžete setkat během migrace, a popisují, jak se s nimi vypořádat.

Dotazy

Převedou se pouze výběrové dotazy; jiné dotazy nejsou, včetně výběrových dotazů, které přebírají parametry. Některé dotazy se nemusí úplně převést a nástroj SSMA během procesu převodu hlásí chyby dotazů. Objekty, které se nepřevádějí, můžete ručně upravit pomocí syntaxe jazyka T-SQL. Chyby syntaxe mohou také vyžadovat ruční převod funkcí a datových typů specifických pro Access na SQL Server. Další informace najdete v článku Porovnání Accessového SQL s SQL Serverem TSQL.

Datové typy

Access a SQL Server mají podobné datové typy, ale mějte na paměti následující potenciální problémy.

Velké číslo    Datový typ Velké číslo ukládá nepeněžní číselnou hodnotu a je kompatibilní s datovým typem BIGINT SQL. Tento datový typ můžete použít k efektivnímu výpočtu velkých čísel, ale vyžaduje použití formátu souboru accessu 16 (16.0.7812 nebo novější) .accdb a lepší výkon s 64bitovou verzí Accessu. Další informace najdete v tématech Použití datového typu Velké číslo a Volba mezi 64bitovou nebo 32bitovou verzí Office.

Ano/Ne    Ve výchozím nastavení se sloupec Ano/Ne accessu převede na SQL Server bitové pole. Abyste se vyhnuli zamykání záznamů, ujistěte se, že je bitové pole nastavené tak, aby nepovoluje hodnoty NULL. V nástroji SSMA můžete vybrat bitový sloupec a nastavit vlastnost Allow Nulls na hodnotu NE. V TSQL použijte příkazy CREATE TABLE nebo ALTER TABLE .

Datum a čas    Je potřeba vzít v úvahu několik aspektů data a času:

  • Pokud je úroveň kompatibility databáze 130 (SQL Server 2016) nebo vyšší a propojená tabulka obsahuje jeden nebo více sloupců datetime nebo datetime2, může tabulka vrátit zprávu #deleted ve výsledcích. Další informace najdete v tématu Propojená tabulka accessu pro SQL-Server databáze vrací #deleted.

  • Pomocí datového typu Datum a čas aplikace Access namapujte na datový typ datetime. Pomocí datového typu Rozšířené datum a čas aplikace Access namapujte na datový typ datetime2 , který má větší rozsah data a času. Další informace najdete v tématu Použití datového typu Rozšířené datum a čas.

  • Při dotazování na data v SQL Server vezměte v úvahu čas i datum. Příklady:

    • DateOrdered Between 1/1/19 and 1/31/19 may not include all orders.

    • DateOrdered Between 1/1/19 00:00:00 AM and 31/1/19 23:59:59 PM zahrnuje všechny objednávky.

Příloha   Datový typ Příloha ukládá soubor v accessové databázi. V SQL Server máte několik možností, které je potřeba zvážit. Soubory můžete extrahovat z databáze Accessu a pak zvážit uložení odkazů na soubory v databázi SQL Server. Alternativně můžete použít FILESTREAM, FileTables nebo Vzdálené úložiště objektů blob (RBS) a zachovat přílohy uložené v databázi SQL Server.

Hypertextový odkaz    Tabulky Aplikace Access obsahují sloupce hypertextových odkazů, které SQL Server nepodporuje. Ve výchozím nastavení se tyto sloupce v SQL Server převedou na sloupce nvarchar(max), ale mapování můžete přizpůsobit a zvolit menší datový typ. V accessovém řešení můžete chování hypertextových odkazů ve formulářích a sestavách používat i v případě, že nastavíte vlastnost Hypertextový odkaz ovládacího prvku na hodnotu true.

Pole s více hodnotami    Pole Access s více hodnotami se převede na SQL Server jako pole ntext, které obsahuje sadu hodnot s oddělovači. Protože SQL Server nepodporuje datový typ s více hodnotami, který modeluje relaci M:N, může být zapotřebí další návrh a převod.

Další informace o mapování datových typů Accessu a SQL Server najdete v tématu Porovnání datových typů.

Poznámka:    Pole s více hodnotami se nepřevedou.

Další informace najdete v tématech Typy data a času, Řetězcové a binární typy a Číselné typy.

Visual Basic

I když SQL Server jazyk VBA nepodporuje, mějte na paměti následující možné problémy:

Funkce jazyka VBA v dotazech    Accessové dotazy podporují funkce jazyka VBA u dat ve sloupci dotazu. Dotazy Accessu, které používají funkce jazyka VBA, se ale nedají spustit na SQL Server, takže všechna požadovaná data se předají do aplikace Microsoft Access ke zpracování. Ve většině případů by se tyto dotazy měly převést na předávací dotazy.

Uživatelem definované funkce v dotazech    Dotazy Microsoft Accessu podporují použití funkcí definovaných v modulech jazyka VBA ke zpracování dat, která jsou jim předána. Dotazy můžou být samostatné dotazy, příkazy SQL ve zdrojích záznamů formuláře nebo sestavy, zdroje dat polí se seznamem a seznamy ve formulářích, sestavy a pole tabulky a výchozí nebo ověřovací výrazy pravidla. SQL Server nelze tyto uživatelem definované funkce spustit. Možná budete muset tyto funkce ručně přepracovat a převést je na uložené procedury na SQL Server.

Optimalizace výkonu

Zdaleka nejdůležitějším způsobem, jak optimalizovat výkon pomocí nového back-endového SQL Server, je rozhodnutí, kdy použít místní nebo vzdálené dotazy. Když migrujete data do SQL Server, přecházíte také ze souborového serveru na výpočetní model databáze klient-server. Postupujte podle těchto obecných pokynů:

  • Pro nejrychlejší přístup na klienta spusťte malé dotazy jen pro čtení.

  • Spusťte na serveru dlouhé dotazy pro čtení a zápis, abyste mohli využívat vyšší výpočetní výkon.

  • Minimalizujte síťový provoz pomocí filtrů a agregace, abyste mohli přenášet jenom data, která potřebujete.

Optimalizace výkonu v databázovém modelu klientského serveru

Další informace najdete v tématu Vytvoření předávacího dotazu.

Níže jsou uvedené další doporučené pokyny.

Vložení logiky na server     Vaše aplikace může také používat zobrazení, uživatelem definované funkce, uložené procedury, počítaná pole a triggery k centralizaci a sdílení aplikační logiky, obchodních pravidel a zásad, složitých dotazů, ověřování dat a referenční integrity kódu na serveru, nikoli na klientovi. Zeptejte se sami sebe, je možné tento dotaz nebo úlohu provádět na serveru lépe a rychleji? Nakonec otestujte každý dotaz, abyste zajistili optimální výkon.

Použití zobrazení ve formulářích a sestavách    V Accessu udělejte toto:

  • Pro formuláře použijte zobrazení SQL pro formulář jen pro čtení a indexované zobrazení SQL pro formulář pro čtení a zápis jako zdroj záznamů.

  • Pro sestavy použijte jako zdroj záznamů zobrazení SQL. Pro každou sestavu ale vytvořte samostatné zobrazení, abyste mohli snadněji aktualizovat konkrétní sestavu, aniž by to mělo vliv na jiné sestavy.

Minimalizace načítání dat ve formuláři nebo sestavě    Nezobrazovat data, dokud o to uživatel nepožádá. Například ponechte vlastnost zdroj záznamů prázdnou, nastavte uživatele, aby ve vašem formuláři vybrali filtr a pak naplňte vlastnost zdroj záznamů filtrem. Nebo použijte klauzuli where v souborech DoCmd.OpenForm a DoCmd.OpenReport, abyste zobrazili přesné záznamy, které uživatel potřebuje. Zvažte vypnutí navigace na záznamech.

Buďte opatrní při heterogenních dotazech   Vyhněte se spouštění dotazu, který kombinuje místní accessovou tabulku a SQL Server propojenou tabulku, někdy označovanou jako hybridní dotaz. Tento typ dotazu stále vyžaduje, aby Access stáhl všechna SQL Server data do místního počítače a pak dotaz spustil. Nespustí dotaz v SQL Server.

Kdy použít místní tabulky    Zvažte použití místních tabulek pro data, která se mění jen zřídka, jako je seznam států nebo provincií v zemi nebo oblasti. Statické tabulky se často používají k filtrování a můžou lépe fungovat na front-endu Accessu.

Další informace najdete v tématech Poradce pro optimalizaci databázového stroje, Použití Analyzátor výkonu k optimalizaci accessové databáze a Optimalizace aplikací Microsoft Office Access propojených s SQL Server.

Viz také

Průvodce migrací služby Azure Database

Blog o migraci dat Microsoftu

Microsoft Access to SQL Server Migration, Conversion and Upsizing

Způsoby sdílení databáze aplikace Access pro klientské počítače

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?
Po stisknutí tlačítka pro odeslání se vaše zpětná vazba použije k vylepšování produktů a služeb Microsoftu. Váš správce IT bude moci tato data shromažďovat. Prohlášení o zásadách ochrany osobních údajů.

Děkujeme vám za zpětnou vazbu.

×