Postupem času se většina databázových aplikací rozrůstá, stává se složitějšími a potřebuje podporovat více uživatelů. V určitém okamžiku života aplikace Microsoft Office Access můžete zvážit přenesení do databáze Microsoft SQL Server za účelem optimalizace výkonu, škálovatelnosti, dostupnosti, zabezpečení, spolehlivosti a obnovitelnosti.
V tomto článku
Informace o přenesení databáze Microsoft Office Accessu
Přenesení je proces migrace některých nebo všech Databázové objekty z accessové databáze do nové nebo existující databáze SQL Server nebo nového projektu Accessu (.adp).
Výhody přenesení databáze do SQL Server
-
Vysoký výkon a škálovatelnost V mnoha situacích nabízí SQL Server lepší výkon než databáze Accessu. SQL Server také poskytuje podporu pro velmi velké databáze s velikostí terabajtů, což je mnohem větší než aktuální limit databáze Accessu o velikosti dvou gigabajtů. A konečně SQL Server funguje velmi efektivně tím, že zpracovává dotazy paralelně (při zpracování požadavků uživatelů používá více nativních vláken v rámci jednoho procesu) a minimalizuje další požadavky na paměť, když se přidá více uživatelů.
-
Zvýšená dostupnost SQL Server umožňuje provádět dynamické zálohování databáze, ať už přírůstkové, nebo úplné, 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.
-
Vylepšené zabezpečení Pomocí důvěryhodného připojení se SQL Server můžou integrovat se zabezpečením systému Windows, aby poskytovaly jediný integrovaný přístup k síti a databázi a využívaly nejlepší z obou systémů zabezpečení. Díky tomu je správa složitých schémat zabezpečení mnohem jednodušší.
-
Okamžitá obnovitelnost V případě selhání systému (například selhání operačního systému nebo výpadku napájení) má SQL Server mechanismus automatického obnovení, který obnoví databázi do posledního stavu konzistence během několika minut bez zásahu správce databáze.
-
Serverové zpracování Použití SQL Server v konfiguraci klient/server snižuje síťový provoz tím, že před odesláním výsledků klientovi zpracovává databázové dotazy na serveru. Zpracování serverem je obvykle mnohem efektivnější, zejména při práci s velkými datovými sadami.
Vaše aplikace může také používat uživatelem definované funkce, uložené procedury 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 kódu referenční integrity na serveru, nikoli na klientovi.
Způsoby přenesení
Průvodce přenesením přesune databázové objekty a data, která obsahují, z accessové databáze do nové nebo existující SQL Server databáze.
Průvodce přenesením můžete použít třemi způsoby:
-
Přenesení všech databázových objektů z databáze Accessu do projektu accessu, abyste mohli vytvořit klient/serverovou aplikaci. Tento přístup vyžaduje další změny aplikace a úpravy kódu a složitých dotazů.
-
Přenesení pouze dat nebo definic dat z accessové databáze do databáze SQL Server.
-
Vytvořte front-end databáze Accessu do back-endu SQL Server databáze, abyste mohli vytvořit Front-end/back-end aplikace. Tento přístup vyžaduje velmi málo úprav aplikace, protože kód stále používá databázový stroj Accessu (ACE).
Před přenesením databáze Accessu
Před přenesením databáze Accessu do databáze SQL Server nebo projektu Accessu zvažte následující kroky:
-
Zálohování databáze Průvodce přenesením sice z databáze Accessu neodebere žádná data ani databázové objekty, ale před přenesením databáze accessu je vhodné vytvořit záložní kopii databáze Accessu.
-
Ujistěte se, že máte dostatek místa na disku. Na zařízení, které bude obsahovat upsizovanou databázi, musíte mít dostatek místa na disku. Průvodce přenesením funguje nejlépe, když je k dispozici dostatek místa na disku.
-
Vytváření jedinečných indexů Propojená tabulka musí mít jedinečný index, aby ji bylo možné aktualizovat v Accessu. Průvodce přenesením může přenést stávající jedinečný index, ale nemůže vytvořit index, který neexistuje. Pokud chcete mít možnost aktualizovat tabulky, nezapomeňte před přenesením velikosti přidat do každé tabulky Accessu jedinečný index.
-
Přiřazení odpovídajících oprávnění k databázi SQL Server
-
Pokud chcete provést přenesení do existující databáze, potřebujete oprávnění CREATE TABLE a CREATE DEFAULT.
-
Pokud chcete vytvořit novou databázi, potřebujete oprávnění CREATE DATABASE a oprávnění SELECT u systémových tabulek v hlavní databázi.
-
Průvodce přenesením aplikace Access 2007 je optimalizovaný pro práci s Microsoft SQL Server 2000 a SQL Server 2005.
Použití Průvodce přenesením
-
Na kartě Databázové nástroje klikněte ve skupině Přesunout data na SQL Server.
Spustí se Průvodce přenesením.
Krok 1: Zvolte přenesení na existující databázi nebo novou databázi
Na první stránce průvodce určíte, zda chcete databázi aplikace Access přenést do existující databáze SQL Server nebo vytvořit novou databázi SQL Server.
-
Použít existující databázi Pokud vyberete tuto možnost a potom kliknete na Další, access zobrazí dialogové okno Vybrat zdroj dat, abyste mohli vytvořit připojení ODBC k existující databázi SQL Server.
O zdrojích dat ODBC
Zdroj dat je zdroj dat v kombinaci s informacemi o připojení potřebnými pro přístup k datům. Mezi zdroje dat patří Access, SQL Server, Oracle RDBMS, tabulka a textový soubor. Informace o připojení můžou zahrnovat například umístění serveru, název databáze, přihlašovací jméno a heslo a různé možnosti ovladačů ODBC popisující, jak se ke zdroji dat připojit.
V architektuře ODBC se aplikace (například Access nebo program Microsoft Visual Basic) připojuje ke Správci ovladačů ODBC, který zase používá konkrétní ovladač ODBC (například ovladač Microsoft SQL ODBC) pro připojení ke zdroji dat (v tomto případě SQL Server databázi). V Accessu se prostřednictvím zdrojů dat ODBC dá připojit k externím zdrojům dat, které neobsahují integrované ovladače.
Připojení k těmto zdrojům dat vyžaduje splnění následujících předpokladů:
-
Na počítač obsahující zdroj dat je potřeba nainstalovat odpovídající ovladač ODBC.
-
Dále je nutné definovat název zdroje dat (DSN), a to buď pomocí Správce zdrojů dat ODBC, který uloží informace o připojení do registru Windows nebo do souboru DSN, nebo pomocí připojovacího řetězce v kódu jazyka Visual Basic, který předá informace o připojení přímo správci ovladačů ODBC.
Zdroje dat počítače
Zdroje dat počítače ukládají informace o připojení v registru systému Windows na konkrétním počítači s uživatelem definovaným názvem. Tento typ zdrojů dat můžete použít jenom na počítači, kde jsou definovány. Existují dva typy zdrojů dat počítače – uživatelské a systémové. Uživatelské zdroje dat může používat jenom aktuální uživatel a jsou viditelné jenom pro něj. Systémové zdroje dat můžou používat všichni uživatelé počítače a jsou viditelné jak pro ně, tak pro služby v celém systému. Zdroje dat počítače jsou obzvlášť užitečné, když chcete zajistit vyšší zabezpečení, protože takový zdroj můžou zobrazit jenom přihlášení uživatelé a nikdo ho nemůže na dálku zkopírovat do jiného počítače.
Souborové zdroje dat
Souborové zdroje dat (říká se jim také soubory DSN) ukládají informace o připojení do textového souboru, ne do registru Windows, a jsou obvykle flexibilnější než zdroje dat počítače. Můžete například zkopírovat zdroj dat souboru do libovolného počítače se správným ovladačem ODBC, aby se vaše aplikace mohly spolehnout na konzistentní a přesné informace o připojení ke všem počítačům, které používá. Nebo můžete souborový zdroj dat umístit na server a sdílet pro velký počet počítačů v síti, takže budete informace o připojení jednoduše spravovat na jednom místě.
Souborový zdroj dat se dá nastavit také tak, že nepůjde sdílet. Zdroj dat souboru, který nelze sdílet, se nachází v jednom počítači a odkazuje na zdroj dat počítače. Tento typ zdroje dat můžete použít k přístupu k existujícím zdrojům dat počítače ze souborových zdrojů dat.
Připojovací řetězce
V modulu můžete definovat formátovaný připojovací řetězec obsahující informace o připojení. Připojovací řetězec předává informace o připojení přímo správci ovladačů ODBC a pomáhá zjednodušit aplikaci tím, že odebere požadavek, aby správce systému nebo uživatel nejprve vytvořil název DSN před použitím databáze.
-
-
Vytvořit novou databázi Pokud vyberete tuto možnost a potom kliknete na Další, access zobrazí stránku, na které zadáte informace o nové SQL Server databázi.
-
Jaké SQL Server chcete pro tuto databázi použít? Zadejte název serveru, který chcete použít.
-
Použít důvěryhodné připojení Můžete použít důvěryhodné připojení, to znamená, že SQL Server můžete integrovat se zabezpečením operačního systému Windows a poskytnout tak jediné přihlášení k síti a databázi.
-
Přihlašovací ID a heslo Pokud nepoužíváte důvěryhodné připojení, zadejte přihlašovací ID a heslo účtu s oprávněními CREATE DATABASE na serveru.
-
Jak chcete novou databázi SQL Server pojmenovat? Zadejte název nové databáze SQL Server. Access upraví název, pokud je v konfliktu s existujícím názvem databáze, a přidá čísloovanou příponu (například mydatabase 1).
-
Krok 2: Výběr tabulek, které chcete přenést
V tomto kroku vyberete tabulky Accessu, které chcete přenést do databáze SQL Server. Vyberte tabulky, které chcete přenést, a pak je pomocí tlačítek se šipkami přesuňte do seznamu Exportovat do SQL Server. Případně můžete na tabulku poklikáním přesunout z jednoho seznamu do druhého.
Seznam Dostupné tabulky obsahuje všechny propojené tabulky s výjimkou SQL Server tabulek, které jsou již v databázi SQL Server. Propojené tabulky, které ukazují na SQL Server databázi, která byla vybrána pro přenesení velikosti, se automaticky zobrazí v seznamu Exportovat do SQL Server a nelze je odebrat. Vyloučeny jsou také tabulky, které nejsou aktuálně viditelné v Navigační podokno, včetně skrytých tabulek a systémových tabulek.
Tip: Všechny tabulky, které mají název končící na "_local", jsou vyloučeny ze seznamu dostupných tabulek, aby se zabránilo přenesení tabulek, které již byly přeneseny. Pokud chcete tyto tabulky znovu přenést, přejmenujte je před spuštěním Průvodce přenesením odebráním přípony "_local".
Krok 3: Určení atributů a možností, které se mají přenést
V tomto kroku vyberete, které atributy tabulky chcete přenést do databáze SQL Server. Ve výchozím nastavení jsou pro přenesení velikosti vybrané všechny atributy.
Poznámka: Průvodce přenesením ve výchozím nastavení převede názvy polí Accessu na názvy polí SQL Server a datové typy Accessu na ekvivalentní datové typy SQL Server.
Jaké atributy tabulky chcete přenést?
Následující tabulka uvádí atributy, které můžete přenést, a popisuje, jak průvodce přenesením zpracovává jednotlivé atributy:
Atribut |
Akce, pokud je vybraná |
|||||||||||||||
Indexy |
Průvodce přenesením přemístí všechny indexy. Průvodce přenesením převede primární klíče Accessu na SQL Server indexy a označí je jako SQL Server primární klíče. Pokud se rozhodnete propojit tabulku SQL Server s databází Accessu, Průvodce přenesením přidá k názvu indexu také předponu "aaaaa". Je to proto, že Access jako primární klíč zvolí index, který je v seznamu dostupných indexů první abecedně, a předpona "aaaaa" zajistí výběr správného indexu. Všechny ostatní indexy si zachovají názvy, s výjimkou případů, kdy jsou neplatné znaky nahrazeny znakem _. Jedinečné a ne jedinečné accessové indexy se stanou jedinečnými a ne jedinečnými SQL Server indexy. Propojená tabulka musí mít jedinečný index, aby ji bylo možné aktualizovat v Accessu. Průvodce přenesením může přenést stávající jedinečný index, ale nemůže vytvořit index, který neexistuje. Pokud chcete mít možnost aktualizovat data v tabulkách po jejich přenesení, nezapomeňte před přenesením velikosti přidat do každé tabulky Accessu jedinečný index. |
|||||||||||||||
Ověřovací pravidla |
Průvodce přenesením přemístí následující aktivační události jako aktivační události aktualizace a vložení:
Trigger je řada příkazů jazyka Transact-SQL přidružených k tabulce SQL Server. Tabulka může mít tři triggery, jeden pro každý příkaz, který může upravovat data v tabulce: příkazy UPDATE, INSERT a DELETE. Trigger se automaticky spustí při provedení příkazu. Průvodce přenesením používá k vynucení ověření na úrovni pole triggery místo SQL Server pravidel, protože pravidla SQL Server neumožňují zobrazit vlastní chybové zprávy. Každé ověřovací pravidlo nemusí nutně odpovídat triggeru 1:1. Každé ověřovací pravidlo se může stát součástí několika triggerů a každý trigger může obsahovat kód pro emulaci funkcí několika ověřovacích pravidel. Pokud nastavíte vlastnost Požadováno pole Accessu na hodnotu true, uživatel nemůže vložit záznam a nechat požadované pole null (pokud není k poli výchozí vázáno) nebo nastavit pole jako null při aktualizaci záznamu. Požadovaná pole jsou přenesena na pole, která neumožňují hodnoty Null na SQL Server. Ověřovací text Vlastnost Ověřovací text databáze Accessu je převedena na vlastnost Ověřovací text projektu accessu. To umožňuje, aby se v případě porušení omezení za běhu zobrazily chybové zprávy popisné pro Access. |
|||||||||||||||
Výchozí |
Průvodce přenesením přemístí všechny vlastnosti výchozí hodnoty na výchozí objekty ANSI (American National Standards Institute). |
|||||||||||||||
Relace tabulek |
Průvodce přenesením přemístí všechny relace mezi tabulkami. Můžete se rozhodnout, jak přenést relace mezi tabulkami a referenční integritu pomocí aktivačních událostí aktualizace, vložení nebo odstranění nebo pomocí deklarované referenční integrity (DRI). Dri funguje stejně jako referenční integrita Accessu tím, že definuje omezení primárního klíče pro základní tabulky (stranu 1 v relaci 1:N) a omezení cizích klíčů pro cizí tabulky (obvykle na straně N u relace 1:N).
|
Jaké možnosti dat chcete zahrnout?
-
Přidání polí časového razítka do tabulek SQL Server pomocí pole časového razítka označuje, že záznam byl změněn (ale ne při změně) vytvořením pole s jedinečnou hodnotou a následnou aktualizací tohoto pole při každé aktualizaci záznamu. U propojené tabulky Access použije hodnotu v polích časového razítka k určení, jestli byl záznam před aktualizací změněn. Obecně platí, že pole časového razítka poskytuje nejlepší výkon a spolehlivost. Bez pole časového razítka musí SQL Server zkontrolovat všechna pole v záznamu, aby zjistili, jestli se záznam změnil, což zpomaluje výkon.
Následující tabulka popisuje nastavení dostupná v tomto seznamu:
Nastavení |
Popis |
Ano, nechat průvodce rozhodnout |
Pokud původní tabulky Accessu obsahují pole s plovoucí desetinou čárkou (Jednoduchá nebo Dvojitá), Memo nebo Objekt OLE, vytvoří Průvodce přenesením ve výsledných SQL Server tabulkách pro tato pole nová pole časového razítka. |
Ano, vždy |
Průvodce přenesením vytvoří pole časového razítka pro všechny tabulky s přenesením bez ohledu na to, jaké typy polí obsahují. Tím se zlepší výkon přenesených accessových tabulek, které nemusí obsahovat pole Memo, objekt OLE nebo pole s plovoucí desetinnou čárkou, ale obsahují pole jiných typů. |
Ne, nikdy |
Průvodce přenesením nepřidá do tabulek pole časového razítka. |
Důležité informace: V propojených SQL Server tabulkách Access nezjišťuje, jestli se nezměnila pole objektů Memo nebo OLE, protože tato pole můžou mít mnoho megabajtů a porovnání může být příliš náročné na síť a časově náročné. Proto pokud se změnilo pouze textové pole nebo pole obrázku a neexistuje žádné pole časového razítka, Access změnu přepíše. Také se může zdát, že hodnota pole s plovoucí desetinnou čárkou se změnila, když ne, takže v případě, že pole časového razítka chybí, může Access určit, že záznam byl změněn, i když ne.
-
Vytvořte pouze strukturu tabulky, nevytvořte data. Průvodce přenesením ve výchozím nastavení přemístí všechna data na SQL Server. Pokud zaškrtnete políčko Pouze vytvořit strukturu tabulky, neprotokolujte žádná data , dojde pouze k přenesení datové struktury.
Krok 4: Volba způsobu přenesení aplikace
Na další stránce průvodce můžete vybrat jeden ze tří různých způsobů přenesení databázové aplikace Accessu. V části Jaké změny aplikace chcete provést? vyberte jednu z následujících možností:
-
Vytvoření nové aplikace klienta nebo serveru Accessu Pokud vyberete tuto možnost, Průvodce přenesením vytvoří nový projekt accessu. Průvodce přenesením vás vyzve k zadání názvu, který ve výchozím nastavení odpovídá aktuálnímu názvu databáze Accessu, přidá příponu CS a uloží projekt do stejného umístění jako stávající databáze Accessu.
Průvodce přenesením vytvoří soubor projektu aplikace Access a potom provede přenesení všech databázových objektů z databáze Accessu do projektu aplikace Access. Pokud heslo a ID uživatele neuložíte, access zobrazí při prvním otevření accessového projektu dialogové okno Vlastnosti datového propojení, abyste se mohli připojit k SQL Server databázi.
-
Propojení SQL Server tabulek s existující aplikací Pokud vyberete tuto možnost, Průvodce přenesením upraví databázi Accessu tak, aby vaše dotazy, formuláře, sestavy a datové stránky používaly data v nové databázi SQL Server místo dat v accessové databázi. Průvodce přenesením přejmenuje tabulky aplikace Access, které přejmenujete, s příponou "_local". Pokud například přeinstalujete tabulku s názvem Zaměstnanci, přejmenuje se v accessové databázi Employees_local. Potom průvodce přenesením vytvoří propojenou tabulku SQL Server s názvem Employees( Zaměstnanci).
Poznámka: Po dokončení operace přenesení se tabulky přejmenované s příponou "_local" už nebudou používat. Je však vhodné zachovat místní tabulky, dokud neověřete, že změna velikosti proběhla úspěšně. Později můžete místní tabulky odstranit a zmenšit tak velikost databáze Accessu. Před odstraněním tabulek nezapomeňte zálohovat databázi.
Dotazy, formuláře, sestavy a datové stránky založené na původních tabulkách Employees teď budou používat propojenou tabulku SQL Server Zaměstnanci. Mnoho vlastností polí v původní místní tabulce zdědí nová místní tabulka, včetně Popis, Titulek, Formát, Vstupní maska a DecimalPlaces.
-
Žádné změny aplikace Tuto možnost vyberte, pokud chcete data zkopírovat jenom do databáze SQL Server a nechcete provádět žádné další změny ve stávající databázové aplikaci Accessu.
Uložení hesla a ID uživatele Průvodce přenesením ve výchozím nastavení vytvoří propojené tabulky v existující aplikaci nebo vytvoří projekt accessu bez uložení uživatelského jména a hesla. To znamená, že se uživatelům při každém přihlášení k databázi SQL Server zobrazí výzva k zadání uživatelského jména a hesla.
Pokud vyberete Uložit heslo a ID uživatele, můžou se uživatelé připojit k databázi SQL Server bez přihlášení. Pokud vyberete Vytvořit novou aplikaci accessového klienta/serveru, uloží projekt Accessu uživatelské jméno heslo do připojovacího řetězce OLE DB.
Poznámka: Tato možnost je zakázaná pro možnost Žádné změny aplikace, pokud je propojená tabulka SQL Server nakonfigurovaná s tabulkou MSysConf pro odepření ukládání hesel.
Sestava Průvodce přenesením
Když kliknete na Dokončit, Průvodce přenesením vytvoří sestavu, která poskytuje podrobný popis všech vytvořených objektů a hlásí všechny chyby, ke kterým během procesu došlo. Průvodce přenesením zobrazí sestavu v náhledu tisku a pak ji můžete vytisknout nebo uložit například jako soubor XPS nebo PDF. Sestava se při zavření okna náhledu neuloží jako objekt Accessu.
Sestava Průvodce přenesením obsahuje následující informace:
-
Parametry přenesení, včetně atributů tabulky, které jste se rozhodli přenést, a způsobu přenesení.
-
Informace o tabulce, včetně porovnání Accessu a SQL Server hodnot názvů, datových typů, indexů, ověřovacích pravidel, výchozích hodnot, triggerů a toho, jestli byla přidána časová razítka.
-
Všechny zjištěné chyby, například úplné databáze nebo transakční protokol, nedostatečná oprávnění, nevytvořená databáze nebo zařízení, vynechání tabulky, výchozího nebo ověřovacího pravidla, nevynucování relace, přeskočení dotazu (protože ho nejde přeložit na syntaxi SQL Server) a chyby převodu Ovládací prvek a Zdroj záznamů ve formulářích a sestavách.
Způsob přenesení databázových objektů
Následující datové a databázové objekty se přetáčí:
-
Data a datové typy Všechny datové typy accessové databáze se v SQL Server převedou na jejich ekvivalent. Průvodce převede text databáze Accessu na kódování Unicode přidáním identifikátoru řetězce Unicode do všech řetězcových hodnot a přidáním předpony Unicode n ke všem datovým typům.
-
Dotazy
-
Výběrové dotazy, které nemají klauzuli ORDER BY nebo parametry, se převedou na zobrazení.
-
Akční dotazy se převedou na dotazy akcí uložených procedur. Access přidá funkci SET NOCOUNT ON za kód deklarace parametru, aby se zajistilo, že se uložená procedura spustí.
-
Výběrové dotazy, které odkazují pouze na tabulky (označované také jako základní dotazy), které používají parametry nebo klauzuli ORDER BY, se převedou na uživatelem definované funkce. V případě potřeby se do dotazu, který obsahuje klauzuli ORDER BY, přidá klauzule TOP 100 PERCENT.
-
Dotazy na parametry, které používají pojmenované parametry, udržují původní textový název použitý v accessové databázi a převedou se buď na uložené procedury, nebo na vložené uživatelem definované funkce.
Poznámka: Možná budete muset ručně převést dotazy, které neproběly úspěšně, jako jsou předávací dotazy SQL, dotazy na definici dat a křížové dotazy. Může být také nutné ručně přenést dotazy, které byly příliš hluboko vnořené.
-
-
Formuláře, sestavy a ovládací prvky Příkazy SQL ve vlastnostech RecordSource, ControlsSource a RowSource pro formuláře, sestavy nebo ovládací prvky jsou zachovány a nepřevádějí se na uložené procedury nebo uživatelem definované funkce.
-
Vlastnosti po spuštění Průvodce přenesením přemístí následující vlastnosti při spuštění:
StartUpShowDBWindow
StartUpShowStatusBar
AllowShortcutMenus
AllowFullMenus
AllowBuiltInToolbars
AllowToolbarChanges
AllowSpecialKeys
useAppIconForFrmRpt
AppIcon
AppTitle
StartUpForm
StartUpMenuBar
StartupShortcutMenuBar -
Moduly a makra Průvodce přenesením neprovádí žádné změny modulů ani maker. Možná budete muset aplikaci upravit, aby plně využívala funkce SQL Server. Další informace najdete v článku na webu MSDN Optimalizace aplikací Microsoft Office Access propojených s SQL Server.