С течение на времето повечето приложения за бази данни нарастват, стават по-сложни и трябва да поддържат повече потребители. В някакъв момент от живота на вашето приложение на Microsoft Office Access може да помислите за мигриране към нея в база данни на Microsoft SQL Server, за да оптимизирате производителността, мащабируемостта, наличността, защитата, надеждността и възможностите за възстановяване.
В тази статия
За мигрирането на база данни на Microsoft Office Access
Мигрирането е процесът на мигриране на някои или всички обекти на бази данни от база данни на Access към нова или съществуваща SQL Server база данни или нов проект на Access (.adp).
Предимства на мигрирането на база данни за SQL Server
-
Висока производителност и мащабируемост В много ситуации SQL Server предлага по-добра производителност от база данни на Access. SQL Server също така предоставя поддръжка за много големи бази данни с терабайтови размери, която е много по-голяма от текущото ограничение за база данни на Access от два гигабайта. И накрая, SQL Server работи много ефективно чрез паралелна обработка на заявки (използване на множество основни нишки в рамките на един процес за обработка на потребителски заявки) и минимизиране на допълнителните изисквания към паметта, когато се добавят повече потребители.
-
Повишена наличност SQL Server ви позволява да извършвате динамично архивиране – или постъпково, или завършено – на базата данни, докато се използва. Следователно няма нужда да искате от потребителите да излизат от базата данни, за да архивирате данните.
-
Подобрена защита Използвайки надеждна връзка, SQL Server може да се интегрира със защитата на системата Windows, за да предостави един интегриран достъп до мрежата и базата данни, като използва най-доброто от двете системи за защита. Това много улеснява администрирането на сложни схеми за защита.
-
Незабавна възможност за възстановяване В случай на срив на системата (например срив или прекъсване на захранването на операционната система), SQL Server разполага с механизъм за автоматично възстановяване, който възстановява база данни до последното състояние на съгласуваност за няколко минути без намеса от администратора на базата данни.
-
Обработка, базирана на сървър Използването на SQL Server в конфигурация клиент/сървър намалява мрежовия трафик, като обработва заявките към базата данни на сървъра, преди да изпрати резултатите до клиента. Обработката на сървъра обикновено е много по-ефективна, особено когато работите с големи набори от данни.
Вашето приложение може също да използва дефинирани от потребителя функции, съхранени процедури и задейства централизирано и споделяне на логиката на приложението, бизнес правилата и правилата, сложните заявки, проверката на данни и кода за цялост на връзките на сървъра, а не на клиента.
Начини за преоразмеряване
Съветникът за мигриране към SQL Server премества обектите на базата данни и данните, които съдържат от база данни на Access, в нова или съществуваща SQL Server база данни.
Има три начина да използвате съветника за мигриране към SQL Server:
-
Мигриране на всички обекти на база данни от база данни на Access в проект на Access, така че да можете да създадете приложение клиент/сървър. Този подход изисква някои допълнителни промени в приложението и промяна на код и сложни заявки.
-
Мигриране само на данни или дефиниции на данни от база данни на Access в база данни на SQL Server.
-
Създайте клиент на база данни на Access в SQL Server на база данни, така че да можете да създадете приложение от вид клиент-сървър. Този подход изисква много малко промени в приложенията, тъй като кодът все още използва ядрото на базата данни на Access (ACE).
Преди да извършите мигриране на база данни на Access
Преди да мигрирате вашата база данни на Access в SQL Server база данни или проект на Access, обмислете дали да не направите следното:
-
Архивиране на вашата база данни Въпреки че съветникът за мигриране към SQL Server не премахва никакви данни или обекти на бази данни от вашата база данни на Access, добра идея е да създадете архивно копие на вашата база данни на Access, преди да я мигрирате.
-
Уверете се, че имате достатъчно дисково пространство Трябва да имате достатъчно дисково пространство на устройството, което ще съдържа мигрираната база данни. Съветникът за мигриране към SQL Server работи най-добре, когато има достатъчно свободно дисково пространство.
-
Създаване на уникални индекси Свързаната таблица трябва да има уникален индекс, за да може да се актуализира в Access. Съветникът за мигриране към SQL Server може да мигрира съществуващ уникален индекс, но не може да създаде такъв, където няма такъв. Ако искате да можете да актуализирате таблиците си, преди мигрирането се уверете, че сте добавили уникален индекс към всяка таблица на Access.
-
Даване на подходящи разрешения за базата данни на SQL Server
-
За да преоразмерите съществуваща база данни, ви трябват разрешения CREATE TABLE и CREATE DEFAULT.
-
За да създадете нова база данни, ви трябва разрешение CREATE DATABASE и разрешения SELECT за системните таблици в основната база данни.
-
Съветникът за мигриране към SQL Server 2007 е оптимизиран за работа с Microsoft SQL Server 2000 и SQL Server 2005.
Използване на съветника за мигриране към SQL Server
-
В раздела Инструменти за бази данни, в групата Преместване на данни щракнете върху SQL Server.
Стартира се съветникът за мигриране към SQL Server.
Стъпка 1: Изберете, за да преоразмерите съществуваща база данни или нова база данни
На първата страница на съветника задайте дали искате да преоразмерите базата данни на Access в съществуваща SQL Server база данни, или да създадете нова SQL Server база данни.
-
Използване на съществуваща база данни Ако изберете тази опция и след това щракнете върху Напред, Access показва диалоговия прозорец Избор на източник на данни, така че да можете да създадете ODBC връзка към съществуващата SQL Server база данни.
За ODBC източниците на данни
Източникът на данни е източник на данни, комбиниран с информацията за връзка, необходима за достъп до тези данни. Примери за източници на данни са Access, SQL Server, RDBMS на Oracle, електронна таблица и текстов файл. Примери за информация за връзка са местоположението на сървъра, името на базата данни, ИД за влизане, паролата и различните опции на ODBC драйвера, описващи как да се свържете с източника на данни.
В архитектурата на ODBC дадено приложение (например Access или програма на Microsoft Visual Basic) се свързва с диспечера на ODBC драйвери, който на свой ред използва конкретен ODBC драйвер (например MICROSOFT SQL ODBC драйвер), за да се свърже с източник на данни (в този случай SQL Server база данни). В Access използвате ODBC източници на данни, за да се свържете към външни за Access източници на данни, за които няма вградени драйвери.
За да свържете с тези източници на данни, трябва да направите следното:
-
Да инсталирате подходящия ODBC драйвер на компютъра, съдържащ източника на данни.
-
Да дефинирате име на източник на данни (DSN), като използвате Администратор на източници на данни за ODBC за съхраняване на информация за връзка в системния регистър на Microsoft Windows или DSN файл или низ за свързване под формата на код на Visual Basic, за да предадете информацията за връзка директно към диспечера на ODBC драйвери.
Машинни източници на данни
Машинните източници на данни съхраняват информацията за връзка в системния регистър на Windows на конкретен компютър с дефинирано от потребителя име. Можете да използвате машинни източници на данни само на компютър, в който те са дефинирани. Има два типа машинни източници на данни – потребителски и системни. Потребителските източници на данни могат да се използват само от текущия потребител и са видими само за този потребител. Системните източници на данни могат да се използват от всички потребители на компютъра и са видими за всички потребители на компютъра и за услугите на цялата система. Машинният източник на данни е особено полезен, когато искате да предоставите допълнителна защита, тъй като само потребители, които са влезли, могат да виждат даден машинен източник на данни и той не може да се копира от отдалечен потребител на друг компютър.
Файлови източници на данни
Файловите източници на данни (наричани също DSN файлове) съхраняват информацията за връзка в текстов файл, а не в системния регистър на Windows, като по принцип са по-гъвкави за използване от машинните източници на данни. Например можете да копирате файлов източник на данни на всеки компютър с правилния ODBC драйвер, така че вашето приложение да може да разчита на съгласувана и точна информация за връзка с всички компютри, които използва. Или можете да поставите файловия източник на данни на един сървър, да го споделите между много компютри в мрежата и лесно да поддържате на едно място информацията за връзката.
Файловият източник на данни може да бъде и несподелим. Несподелимият файлов източник на данни се намира на един компютър и сочи към машинен източник на данни. Можете да използвате несподелими файлови източници на данни за достъп от файлови източници на данни до съществуващи машинни източници на данни.
Низове за връзка
В модул, можете да дефинирате форматиран низ за връзка, който задава информация за свързване. Низът за свързване предава информацията за свързване директно на диспечера на ODBC драйвери и това опростява вашето приложение, като премахва изискването системният администратор или потребителят първо да създадат DSN, преди да използва базата данни.
-
-
Създаване на нова база данни Ако изберете тази опция и след това щракнете върху Напред, Access показва страница, където въвеждате информация за новата SQL Server база данни.
-
Какво SQL Server искате да използвате за тази база данни? Въведете името на сървъра, който искате да използвате.
-
Използване на надеждна връзка Можете да използвате надеждна връзка, т.е. SQL Server може да се интегрира със защитата на операционната система Windows, за да се осигури еднократно влизане в мрежата и базата данни.
-
ИД за влизане и парола Ако не използвате надеждна връзка, въведете ИД за влизане и паролата на акаунт с привилегии CREATE DATABASE на сървъра.
-
Как искате да наименуване на вашата нова база данни за SQL Server? Въведете името на новата база данни за SQL Server. Access коригира името, ако е в конфликт със съществуващо име на база данни и добавя номериран суфикс (например mydatabase 1).
-
Стъпка 2: Изберете кои таблици да се преоразмерят
В тази стъпка избирате таблиците на Access, които искате да преоразмерите до SQL Server база данни. Изберете таблиците, които искате да преоразмерите, и след това използвайте бутоните със стрелки, за да ги преместите в списъка Експортиране в SQL Server. Като алтернатива можете да щракнете двукратно върху таблица, за да я преместите от един списък в друг.
Списъкът Налични таблици включва всички свързани таблици с изключение на SQL Server таблици, които вече са в SQL Server база данни. Свързаните таблици, които сочат към база данни на SQL Server, избрана за автоматично мигриране, се показват в списъчното поле Експортиране в SQL Server и не могат да бъдат премахнати. Таблиците, които в момента не са видими в навигационен екран, също са изключени, включително скритите таблици и системните таблици.
Съвет: Всяка таблица, която има име, завършващо на "_local", се изключва от списъка с налични таблици, за да се предотврати мигрирането на таблици, които вече са мигрирани. Ако искате да мигрирате отново тези таблици, преименувайте ги, преди да изпълните съветника за мигриране към SQL Server, като премахнете суфикса "_local".
Стъпка 3: Задайте атрибутите и опциите за мигриране
В тази стъпка избирате кои атрибути на таблица да се преоразмерят във вашата SQL Server база данни. По подразбиране всички атрибути са избрани за мигриране по подразбиране.
Забележка: По подразбиране съветникът за мигриране към SQL Server преобразува имената на полетата на Access в юридически SQL Server имена на полета и преобразува типовете данни на Access в еквивалентните SQL Server типове данни.
Кои атрибути на таблица искате да преоразмерите?
Следващата таблица съдържа атрибутите, които можете да мигрирате, и описва как съветникът за мигриране към SQL Server обработва всеки от тях:
Атрибут |
Действие, ако е избрано |
|||||||||||||||
Индекси |
Съветникът за мигриране към SQL Server мигрира всички индекси. Съветникът за мигриране към SQL Server преобразува първичните ключове на Access в SQL Server индекси и ги маркира като SQL Server първични ключове. Ако изберете да свържете мигрираната SQL Server таблица към вашата база данни на Access, съветникът за мигриране към вашата база данни на Access добавя префикса "aaaaa" към името на индекса. Това е така, защото Access избира индекса, който е първи по азбучен ред в списъка с налични индекси, като първичен ключ, а префиксът "aaaaa" гарантира, че е избран правилният индекс. Всички други индекси запазват имената си, с изключение на случаите, когато недопустими знаци са заместени със знака "_". Уникалните и не уникалните индекси на Access стават уникални и не уникални индекси на SQL Server. Свързаната таблица трябва да има уникален индекс, за да може да се актуализира в Access. Съветникът за мигриране към SQL Server може да мигрира съществуващ уникален индекс, но не може да създаде такъв, където няма такъв. Ако искате да можете да актуализирате данните в таблиците след мигрирането им, трябва да добавите уникален индекс към всяка таблица на Access, преди да извършите мигрирането. |
|||||||||||||||
Правила за проверка |
Съветникът за мигриране към SQL Server мигрира следното като превключватели за актуализиране и вмъкване:
Превключвателят е серия от Команди за Transact-SQL, свързани с таблица на SQL Server. Таблицата може да има три превключвателя – по един за всяка от командите, които могат да модифицират данни в таблица: командите UPDATE,INSERT и DELETE. Превключвателят се изпълнява автоматично, когато се изпълни командата. Съветникът за мигриране към SQL Server използва превключватели, а не SQL Server правила за прилагане на проверка на ниво поле, защото SQL Server правила не ви позволяват да показвате съобщения за грешка по избор. Не е задължително всяко валидиращо правило да има кореспонденция "един към един" с превключвател. Всяко валидиращо правило може да стане част от няколко превключвателя и всеки превключвател може да съдържа код за емулиране на функционалността на няколко валидиращи правила. Когато зададете свойството Required на поле на Access на "истина", потребителят не може да вмъкне запис и да остави необходимото поле Null (ако няма връзка по подразбиране с полето) или да направи полето null при актуализирането на запис. Задължителните полета са мигрирани до полета, които не позволяват стойности Null в SQL Server. Текст на проверка за валидност Свойството Текст на проверка за валидност на база данни на Access се конвертира в свойството Текст на проверка за проект на Access. Това позволява удобни съобщения за грешка на Access да се показват в случай на нарушаване на ограничението по време на изпълнение. |
|||||||||||||||
По подразбиране |
Съветникът за мигриране към SQL Server мигрира всички свойства на стойността по подразбиране в обекти по подразбиране на Американски национален институт за стандарти (ANSI). |
|||||||||||||||
Релации на таблици |
Съветникът за мигриране към SQL Server мигрира всички релации между таблиците. Можете да решите как да промените релациите между таблиците и целостта на връзките, като използвате превключватели за актуализиране, вмъкване или изтриване или с помощта на декларираната цялост на връзките (DRI). DRI работи по същия начин като целостта на връзките на Access, като дефинира ограниченията за първичния ключ за базовите таблици (страната "един" на релация "един към много") и ограниченията с външен ключ за външни таблици (обикновено страната "много" на релацията "един към много").
|
Какви опции за данни искате да включите?
-
Добавяне на полета за клеймо с дата и час към таблици SQL Server използва поле за клеймо с дата и час, за да укаже, че записът е променен (но не и когато е бил променен) чрез създаване на поле за уникална стойност и след това актуализиране на това поле всеки път, когато записът се актуализира. За свързана таблица Access използва стойността в полетата за клеймо с дата и час, за да определи дали даден запис е променен, преди да го актуализира. По принцип полето за клеймо с дата и час предоставя най-добрата производителност и надеждност. Без поле за клеймо с дата и час SQL Server трябва да провери всички полета в записа, за да определи дали записът е променен, което забавя производителността.
Следващата таблица описва наличните настройки в този списък:
Настройка |
Описание |
Да, оставете съветника да реши |
Ако първоначалните таблици на Access съдържат полета с плаваща запетая (единична или двойна), паметна бележка или OLE обект полета, съветникът за мигриране към SQL Server създава нови полета за клеймо с дата и час в получения SQL Server таблици за тези полета. |
Да, винаги |
Съветникът за мигриране към SQL Server създава поле за клеймо с дата и час за всички мигрирани таблици, независимо какви типове полета съдържат. Това подобрява производителността на мигрираните таблици на Access, които може да не съдържат полета Memo, OLE object или floating-point, но които имат полета от друг тип. |
Не, никога |
Съветникът за мигриране към SQL Server не добавя полета за клеймо с дата и час в таблиците. |
Важно: В свързаните SQL Server таблици Access не проверява дали полетата за обекти Memo или OLE са променени, тъй като тези полета може да са с размер много мегабайти и сравнението може да изисква твърде много мрежа и да отнема много време. Следователно, ако е променено само текстово поле или поле за изображение и няма поле за клеймо с дата и час, Access замества промяната. Освен това стойността на поле с плаваща запетая може да изглежда променена, когато не е, така че при липса на поле за клеймо с дата и час Access може да определи, че записът е променен, когато не е.
-
Създавайте само структурата на таблицата, не мигрирайте никакви данни Съветникът за мигриране към SQL Server преоразмерява всички данни така, че да SQL Server по подразбиране. Ако изберете квадратчето за отметка Само създаване на структура на таблица, не мигрирай данните , а само структурата на данните се мигрира.
Стъпка 4: Изберете как да преоразмерите вашето приложение
На следващата страница на съветника можете да изберете един от трите различни начина за преоразмеряване на вашето приложение за база данни на Access. Под Какви промени на приложението искате да направите? изберете една от следните опции:
-
Създаване на ново приложение клиент/сървър на Access Ако изберете тази опция, съветникът за мигриране към SQL Server създава нов проект на Access. Съветникът за мигриране към SQL Server ви подканва за име, което по подразбиране е името на текущата база данни на Access, добавя суфикс "CS" и след това съхранява проекта в същото местоположение като съществуващата база данни на Access.
Съветникът за мигриране към SQL Server създава файла на проекта на Access и след това мигрира всички обекти на базата данни от базата данни на Access в проекта на Access. Ако не запишете паролата и потребителския ИД, когато отворите проекта на Access за първи път, Access показва диалоговия прозорец Свойства на връзката с данни, така че да можете да се свържете към SQL Server база данни.
-
Свързване SQL Server таблици към съществуващо приложение Ако изберете тази опция, съветникът за мигриране към SQL Server променя вашата база данни на Access така, че вашите заявки, формуляри, отчети и страници за достъп до данни да използват данните в новата SQL Server база данни, а не данните във вашата база данни на Access. Съветникът за мигриране към SQL Server преименува таблиците на Access, които мигрирате, със суфикса "_local". Ако например направите преоразмеряване на таблица с име "Служители", таблицата се преименува Employees_local във вашата база данни на Access. След това съветникът за мигриране към SQL Server създава свързана SQL Server таблица с име "Служители".
Забележка: След завършване на операцията за мигриране таблиците, които са преименувани със суфикса "_local", повече няма да се използват. Добра идея е обаче да запазите локалните таблици, докато не се уверите, че мигрирането е успешно. На по-късна дата можете да изтриете локалните таблици, за да намалите размера на вашата база данни на Access. Не забравяйте да архивирате вашата база данни, преди да изтриете всички таблици.
Заявките, формулярите, отчетите и страниците за достъп до данни, базирани на първоначалните таблици "Служители", сега ще използват свързаната таблица SQL Server "Служители". Много от свойствата на полетата в първоначалната локална таблица са наследени от новата локална таблица, включително Описание, Надпис, Формат, InputMask и DecimalPlaces.
-
Няма промени в приложението Изберете тази опция, ако искате да копирате вашите данни само в SQL Server база данни и да не правите други промени във вашето съществуващо приложение за база данни на Access.
Записване на парола и потребителски ИД По подразбиране съветникът за мигриране към SQL Server създава свързани таблици в съществуващото приложение или създава проект на Access, без да записва потребителското име и паролата. Това означава, че потребителите получават подкана за потребителско име и парола всеки път, когато влизат в база данни на SQL Server.
Ако изберете Запиши паролата и потребителския ИД, потребителите могат да се свързват с база данни на SQL Server, без да влизат. Ако изберете Създаване на ново приложение за клиент/сървър на Access, проектът на Access съхранява паролата за потребителско име в низ за връзка OLE база данни.
Забележка: Тази опция е забранена за опцията Няма промени в приложението, ако свързана SQL Server таблица е конфигурирана с таблица MSysConf, за да откаже записването на пароли.
Отчет на съветника за мигриране към SQL Server
Когато щракнете върху Готово, съветникът за мигриране към SQL Server създава отчет, който предоставя подробно описание на всички създадени обекти, и съобщава за грешки, възникнали по време на процеса. Съветникът за мигриране към SQL Server показва отчета във "Визуализация на печата" и след това можете да отпечатате или запишете отчета, например като XPS или PDF файл. Отчетът не се записва като обект на Access, когато затворите прозореца Визуализация на печата.
Отчетът на съветника за мигриране към SQL Server съдържа информация за следното:
-
Мигриране на параметри, включително какви атрибути на таблица сте избрали да мигрирате и как сте мигрирали.
-
Информация за таблица, включително сравнение на Access и SQL Server стойности за имена, типове данни, индекси, валидиращи правила, стойности по подразбиране, превключватели и дали са добавени клеймо с дата и час.
-
Открити са грешки, като например пълен регистрационен файл на базата данни или транзакциите, неподходящи разрешения, устройство или база данни, които не са създадени, пропуснато правило за таблица, по подразбиране или правило за проверка, неналожена релация, пропусната заявка (тъй като не може да бъде преведена в SQL Server синтаксис) и контрола и източник на записи грешки при конвертиране във формуляри и отчети.
Как се мигрират обектите на базата данни
Следните данни и обекти на базата данни се мигрират:
-
Данни и типове данни Всички типове данни на база данни на Access се конвертират в техния еквивалент в SQL Server. Съветникът преобразува текста на база данни на Access в Unicode чрез добавяне на идентификатора на низ на Unicode към всички стойности на низове и чрез добавяне на Unicode n префикс към всички типове данни.
-
Заявки
-
Заявките за избиране, които нямат клауза ORDER BY или параметри, се конвертират в изгледи.
-
Заявките за действие се конвертират в заявки за действие за съхранена процедура. Access добавя SET NOCOUNT ON след кода за деклариране на параметър, за да се увери, че съхранената процедура се изпълнява.
-
Заявките за избиране, които препращат само към таблици (наричани също основни заявки), които използват или параметри, или клауза ORDER BY, се преобразуват в дефинирани от потребителя функции. Ако е необходимо, клаузата TOP 100 PERCENT се добавя към заявка, която съдържа клауза ORDER BY.
-
Параметризираните заявки, които използват наименувани параметри, поддържат първоначалното име на текста, използвано в базата данни на Access, и се конвертират в съхранени процедури или вградени функции, дефинирани от потребителя.
Забележка: Може да се наложи ръчно да конвертирате заявки, които не са извършили мигриране, като например транзитни SQL заявки, заявки за дефиниране на данни и кръстосани заявки. Може също да се наложи ръчно да извършите преоразмеряване на заявки, които са били вложени твърде дълбоко.
-
-
Forms, отчети и контроли SQL командите в свойствата RecordSource, ControlsSource и RowSource за формуляри, отчети или контроли се запазват на място и не се конвертират в съхранени процедури или дефинирани от потребителя функции.
-
Свойства при стартиране Съветникът за мигриране към SQL Server мигрира следните свойства при стартиране:
StartUpShowDBWindow
StartUpShowStatusBar AllowShortcutMenus AllowFullMenus AllowBuiltInToolbars AllowToolbarChanges AllowSpecialKeys UseAppIconForFrmRpt AppIcon AppTitle StartUpForm StartUpMenuBar StartupShortcutMenuBar -
Модули и макроси Съветникът за мигриране към SQL Server не прави промени в модули или макроси. Може да се наложи да промените вашето приложение, за да се възползвате максимално от функциите на SQL Server. За повече информация вижте статията в MSDN Оптимизиране на приложенията на Microsoft Office Access, свързани с SQL Server.