Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Ne všechny funkce databáze Accessu fungují s SQL Serverem. Sql Server a Access například používají různé sady vyhrazených klíčových slov. Tyto rozdíly můžou způsobovat problémy při migraci pomocí nástroje SQL Server Migration Assistant (SSMA). Následující část popisuje možné problémy s migrací a jejich řešení.
Nastavení databáze nebo funkce, které můžou ovlivnit migraci
Projděte si následující nastavení nebo funkce accessu, které můžou ovlivnit migraci na SQL Server nebo Azure SQL.
- Tabulky nemají jedinečné indexy.
- Tabulky mají sloupce replikace
- Tabulky s jedinečnými indexy obsahují více hodnot NULL.
- Tabulky obsahují hodnoty kalendářních dat, které jsou mimo rozsah SQL Serveru.
- Délka indexu překračuje 900 bajtů
- Názvy objektů jsou klíčová slova SQL Serveru nebo obsahují speciální znaky.
- Velikosti polí se liší v relacích s primárními a cizími klíči.
- Odkazované tabulky nemají primární klíč ani jedinečný index.
- Tabulky mají sloupce hypertextových odkazů.
- Funkce nejde převést na SQL Server ani Azure SQL
Tabulky nemají jedinečné indexy.
Pokud migrujete tabulku bez jedinečného indexu na SQL Server, nemůžete po migraci tabulku upravit. Toto omezení může způsobit problémy s kompatibilitou aplikací.
Při převodu databázových objektů Accessu se v okně Výstup zobrazí seznam všech tabulek Accessu, které nemají jedinečné indexy.
Access můžete nakonfigurovat tak, aby během převodu přidal primární klíč do tabulky SQL Serveru. Další informace naleznete v tématu Nastavení projektu (převod).
Tabulky mají sloupce replikace
Pokud migrujete accessovou tabulku, která obsahuje sloupce systému replikace na SQL Server, přestane funkce replikace Jet po migraci fungovat.
Po migraci zvažte použití replikace SQL Serveru k údržbě synchronizovaných kopií databází.
Tabulky s jedinečnými indexy obsahují více hodnot NULL.
Před verzí 8.13 nelze přenést tabulky Accessu s jedinečnými indexy s více hodnotami null na SQL Server. V SQL Serveru jedinečné indexy nepovolují více hodnot null. Migrace těchto tabulek selhává.
SSMA tento problém označí v hodnoticích zprávách. Pokud chcete vytvořit sestavu posouzení, přečtěte si téma Posouzení databázových objektů Accessu pro převod.
Pokud tento problém existuje, ujistěte se, že primární klíč nemá duplicitní hodnoty null. Nebo odeberte primární klíč nebo jedinečné indexy, které obsahují více hodnot null.
Tabulky obsahují hodnoty kalendářních dat, které jsou mimo rozsah SQL Serveru.
Typ datetime SQL Serveru přijímá datumy v rozsahu pouze od 1. ledna 1753 do 31. prosince 9999. Access přijímá data v rozsahu od 1. ledna 100 do 31. prosince 9999.
SSMA tento problém označí v hodnoticích zprávách. Pokud chcete vytvořit sestavu posouzení, přečtěte si téma Posouzení databázových objektů Accessu pro převod.
Můžete nakonfigurovat, jak SSMA řeší data, která jsou mimo rozsah SQL Serveru. Další informace najdete v tématu Nastavení projektu (migrace).
Délka indexu překračuje 900 bajtů
Indexy SQL Serveru mají limit 900 bajtů pro celkovou velikost sloupců klíče indexu. Pokud accessové tabulky používají větší indexy, zobrazí SSMA upozornění.
Pokud budete pokračovat v migraci dat, může migrace selhat.
Názvy objektů jsou klíčová slova SQL Serveru nebo obsahují speciální znaky.
Access a SQL Server mají různé sady vyhrazených klíčových slov a speciálních znaků. SQL Server přijímá objekty, které jsou pojmenovány pomocí klíčových slov SQL Serveru nebo které obsahují speciální znaky, pokud používáte závorky nebo uvozované identifikátory, například select nebo [select].p. Další informace naleznete v tématu Identifikátory databáze.
Poznámka:
Chcete-li použít uvozovky k oddělovači identifikátorů, SET QUOTED_IDENTIFIER musí být ON.
Například, CREATE TABLE [schema](c1 [FOR]) je platný příkaz, přestože schema a FOR jsou vyhrazená klíčová slova. Také je platný příkaz, CREATE TABLE [xxx*yyy](c1 x&y) i když název tabulky a sloupce obsahuje speciální znaky * a &.
Všechny dotazy, které odkazují na tyto objekty, musí také používat názvy s hranatými závorkami nebo uvozovkami. Například dotaz SELECT * FROM schema selže. Správný dotaz je: SELECT * FROM [schema].
Při převodu databázových objektů Accessu se v podokně Výstup zobrazí všechny tabulky Accessu, které používají klíčová slova nebo speciální znaky. Tabulky v Accessu můžete upravit a pak databázi znovu odebrat a přidat. Nebo můžete upravit dotazy, které odkazují na tyto objekty, aby dotazy používaly k oddělovači identifikátorů závorky nebo uvozovky. Pokud dotazy neupravujete, můžou vaše aplikace pro Access vracet chyby nebo mít jiné problémy.
Velikosti polí se liší v relacích primárního nebo cizího klíče.
SQL Server nepodporuje funkci jet propojení sloupců, které mají různé datové typy nebo velikosti s omezeními cizího klíče.
Při převodu databázových objektů Accessu se v okně Výstup zobrazí omezení primárního klíče nebo cizího klíče, která nejsou převedena na SQL Server. U sloupců Accessu můžete změnit datové typy a velikosti tak, aby odpovídaly, a pak databázi Accessu odebrat a znovu přidat. Nebo můžete migrovat data, i když se tato omezení nevytvořila na SQL Serveru.
Odkazované tabulky nemají primární klíč ani jedinečný index.
Access přijímá relace mezi tabulkami, kde odkazovaná tabulka nemá primární klíč ani jedinečný index. SQL Server ale tento typ relace nepodporuje.
Při převodu databázových objektů Accessu se v okně Výstup zobrazí všechny tabulky, které mají relace, ale žádný primární klíč nebo jedinečný index. Tabulky můžete změnit tak, aby přidávaly primární klíče nebo jedinečné indexy, a pak databázi Accessu odeberte a znovu přidejte. Nebo můžete migrovat data, i když je relace mezi tabulkami poškozená.
Tabulky mají sloupce hypertextových odkazů.
SQL Server nepodporuje sloupce hypertextových odkazů . Místo toho se sloupce považují za sloupce poznámek Accessu. Ve výchozím nastavení jsou tyto sloupce převedeny na sloupce nvarchar(max) v SQL Serveru. Mapování můžete přizpůsobit. Další informace najdete v tématu Mapování zdrojů a cílových datových typů.
Funkce nejde převést na SQL Server ani Azure SQL
Výchozí výrazy nebo ověřovací pravidla accessu můžou zahrnovat systémové funkce Accessu nebo uživatelem definované funkce, které se nemapují na SQL Server nebo Azure SQL. Pokud používáte funkce, které se nenamapují na SQL Server nebo Azure SQL, nemůžete načíst výchozí výrazy ani ověřovací pravidla do SQL Serveru nebo Azure SQL.