Перейти до основного
Office
Перенесення бази даних Access до сервера SQL Server

Перенесення бази даних Access до сервера SQL Server

Усі ми маємо обмеження, а база даних Access не виняток. Наприклад, база даних Access має обмеження розміру 2 Гб і не підтримує понад 255 одночасних користувачів. Тому, коли настав час для бази даних Access, перейдіть на наступний рівень, можна перейти до сервера SQL Server. SQL Server (незалежно від локального або Блакитної хмари) підтримує великі обсяги даних, більш одночасні користувачі та більше можливостей, ніж Обробник баз даних JET/ACE. У цьому посібнику ви отримуєте плавний початок роботи сервера SQL Server, що дає змогу зберігати готові рішення Access, які ви створили, і сподіваємося, що ви використовуєте Access для майбутніх рішень у базі даних. Майстер перетворення видалено з Access у програмі Access 2013, тому тепер можна використовувати помічник перенесення Microsoft SQL Server (спр). Щоб успішно перенести, виконайте наведені нижче етапи.

Етапи перенесення бази даних до сервера SQL Server

Підготовка

У наведених нижче розділах містяться довідкові та інші відомості, які допоможуть почати роботу.

Відомості про Спліт-бази даних

Усі об'єкти бази даних Access можуть бути в одному файлі бази даних, або вони можуть зберігатися в двох файлах бази даних: інтерфейсні бази даних і базу даних. Це називається розбитим базою даних і призначена для полегшення надання спільного доступу в мережному середовищі. Файл бази даних у задній частині має містити лише таблиці та зв'язки. Зовнішній файл має містити лише всі інші об'єкти, включно з формами, звітами, запитами, макросами, модулями VBA та зв'язаними таблицями до резервної бази даних. Під час перенесення бази даних Access вона схожа на цю базу даних SQL Server, яка працює як новий інтерфейс для даних, які зараз розташовано на сервері.

У результаті ви все одно можете зберегти базу даних Access, яка містить зв'язані таблиці, до таблиць SQL Server. Ефективно можна отримати переваги швидкого розвитку програм, які надає база даних Access, а також масштабованість SQL Server.

Переваги SQL Server

Ще потрібно деяким переконливим перейти на сервер SQL Server? Нижче наведено кілька додаткових переваг, які слід подумати:

  • Додаткові одночасні користувачі    SQL Server може обробляти набагато більше одночасних користувачів, ніж Access і мінімізує вимоги до пам'яті, коли додаються інші користувачі.

  • Підвищена доступність    За допомогою SQL Server можна динамічно створювати резервні копії, а також інкрементна або повна база даних під час використання. Відповідно, для резервного копіювання бази даних не потрібно змушувати користувачів вийти з бази даних.

  • Висока продуктивність і масштабованість    База даних SQL Server зазвичай виконує краще, ніж база даних Access, особливо з великою базою даних, що містить терабайт. Крім того, SQL Server обробляє запити, які значно швидші та ефективніше обробляють запити паралельно, використовуючи кілька власних потоків в одному процесі для обробки запитів користувачів.

  • Удосконалена безпека    За допомогою надійного підключення SQL Server інтегрується з безпекою системи Windows, щоб надати єдиний інтегрований доступ до мережі та бази даних, використовуючи найкращу кількість систем безпеки. Це значно полегшує адміністрування складних схем безпеки. SQL Server – ідеальне сховище для конфіденційних відомостей, таких як номери соціального страхування, дані кредитної картки та адреси, які є конфіденційними.

  • Негайне відновлення можливостей    Якщо операційна система аварійно завершує роботу або вимикається, SQL Server може автоматично відновити базу даних у відповідному стані за лічені хвилини та без втручання адміністратора бази даних.

  • Використання мережі VPN    У програмі Access і віртуальних приватних мережах (VPN) не вдається отримати доступ. Але з SQL Server, віддалені користувачі можуть використовувати все ще використовувати базу даних Access на робочому столі та на сервері SQL Server, розташованому позаду брандмауера VPN.

  • Azure SQL Server    На додаток до переваг SQL Server, пропонує динамічний масштабованість без простоїв, інтелектуальна оптимізація, Глобальна масштабованість та доступність, ліквідація витрат на обладнання та зниження адміністрування.

Вибір найкращого параметра Azure SQL Server

Якщо ви переходите на сервер Azure SQL Server, можна вибрати один із трьох варіантів, кожна з яких відрізняється від таких переваг:

  • Єдина база даних і пружні басейни    Цей параметр має власний набір ресурсів, керованих на сервері бази даних SQL. Одна база даних схожа на базу даних SQL Server. Ви також можете додати пружні пул, що являє собою набір баз даних зі спільним набором ресурсів, керованих за допомогою сервера бази даних SQL. Найчастіше використовувані функції SQL Server доступні для вбудованих резервних копій, виправлення та відновлення. Але немає гарантованого точного часу на обслуговування та перенесення з сервера SQL Server може бути складно.

  • Керований екземпляр    Цей параметр – це набір системних і баз даних користувачів зі спільним набором ресурсів. Керований екземпляр – це зразок бази даних SQL Server, яка дуже відрізняється від локального сервера SQL Server. Керований екземпляр має вбудовані резервні копії, виправлення, відновлення та легко мігрувати з сервера SQL Server. Однак, існує невелика кількість функцій SQL Server, які недоступні, і немає гарантованого точного часу обслуговування.

  • Віртуальна машина Azure    Цей параметр дає змогу запустити SQL Server всередині віртуальної машини в Лазурому хмарі. Ви маєте повний контроль над двигуном SQL Server і легким шляхом перенесення. Але потрібно керувати резервними копіями, латками та відновленням.

Щоб отримати докладніші відомості, перегляньте розділ вибір шляху перенесення бази даних до лазуроі виберіть потрібний параметр SQL Server у Azure.

Перші кроки

Існує кілька проблем, за допомогою яких можна звернутися до фронту, щоб спростити процес перенесення, перш ніж запускати СПВ.

  • Додавання індексів таблиць і первинних ключів    Переконайтеся, що кожна таблиця Access має індекс і первинний ключ. SQL Server вимагає, щоб усі таблиці мали принаймні один індекс, і потрібна Зв'язана таблиця, яка має первинний ключ, якщо таблицю можна оновити.

  • Перевірка зв'язків первинного та зовнішнього ключа    Переконайтеся, що ці зв'язки базуються на полях із відповідними типами даних і розмірами. SQL Server не підтримує об'єднані стовпці з різними типами даних і розмірами в обмеженнях зовнішніх ключів.

  • Видалення стовпця вкладення    Спзтп не перемістить таблиці, які містять стовпець вкладення.

Перш ніж запустити спзр, зробіть ось що.

  1. Закрийте базу даних Access.

  2. Переконайтеся, що поточні користувачі, підключені до бази даних, також закриваєте базу даних.

  3. Якщо база даних має формат файлу MDB, а потім видаліть безпеку на рівні користувача.

  4. Резервне копіювання бази даних. Докладні відомості наведено в статті захист даних за допомогою процесів резервного копіювання та відновлення.

Порада.    Спробуйте інсталювати Microsoft SQL Server Express Edition на робочому столі, що підтримує до 10 Гб, і це безкоштовний і простіший спосіб виконати та перевірити перенесення. Під час підключення використовуйте Localdb як екземпляр бази даних.

Порада.    Якщо це можливо, використовуйте автономний варіант Access. Якщо ви можете використовувати службу Office 365, а потім за допомогою обробника баз даних Access 2010 перенести базу даних Access. Щоб отримати докладніші відомості, ознайомтеся з засобом розповсюдження обробника баз даних Microsoft Access 2010.

Запуск СПЗЗ

Корпорація Майкрософт надає помічника з перенесення Microsoft SQL Server (спзз), щоб спростити перенесення. СПЗВ основному переносить таблиці та виберіть запити без параметрів. Форми, звіти, макроси та модулі VBA не перетворюються. У провіднику метаданих SQL Server відображаються об'єкти бази даних Access і об'єкти SQL Server, які дозволяють переглядати поточний вміст обох баз даних. Ці два підключення зберігаються в файлі перенесення, якщо ви вирішите перенести додаткові об'єкти в майбутньому.

Примітка.    Процес перенесення може тривати певний час залежно від розміру об'єктів бази даних і обсягу даних, які потрібно перенести.

  1. Щоб перенести базу даних за допомогою технології PSSA, спочатку завантажте та інсталюйте програмне забезпечення, двічі клацнувши ЗАВАНТАЖЕНИЙ файл MSI. Переконайтеся, що на комп'ютері інстальовано відповідну версію 32 або 64.

  2. Після інсталяції спзр відкрийте його на робочому столі, бажано з комп'ютера з файлом бази даних Access.

    Ви також можете відкрити його на комп'ютері, який має доступ до бази даних Access із мережі в спільній папці.

  3. Щоб надати базову інформацію, як-от розташування SQL Server, базу даних Access і об'єкти, які потрібно перенести, відомості про підключення та чи потрібно створити зв'язані таблиці, виконайте вказівки з початку.

  4. Якщо ви переходите на SQL Server 2016 або пізнішу версію та хочете оновити зв'язану таблицю, додайте стовпець rowversion, вибравши елементи засоби перевірки > настройки проекту > General (загальні).

    Поле rowversion допомагає уникнути конфліктів у записі. У програмі Access використовується поле rowversion у зв'язаній таблиці SQL Server, щоб визначити, коли запис Востаннє оновлено. Крім того, якщо поле rowversion додано до запиту, програма Access використовуватиме його, щоб повторно вибрати рядок після операції оновлення. Це покращує ефективність, допомагаючи уникнути помилок із конфліктами та сценаріями видалення записів, які можуть виникати, коли Access виявляє різні результати від вихідних надсилань, наприклад із типами даних із плаваючою комою, і тригери, які змінюють стовпців. Однак уникайте використання поля rowversion у формах, звітах або коді VBA. Докладні відомості наведено в статті rowversion.

    Примітка.    Не плутаючи rowversion із позначками. Хоча позначка ключового слова – це синонім для rowversion на сервері SQL Server, ви не можете використовувати рядну версію як спосіб позначки для вводу даних.

  5. Щоб настроїти точні типи даних, виберіть елемент перевірити засоби > настройки проекту > зіставлення типів. Наприклад, якщо ви зберігаєте тільки англійський текст, ви можете використовувати varchar замість типу даних nvarchar .

Перетворення об'єктів

У спзр перетворює об'єкти Access на об'єкти SQL Server, але вона не копіює об'єкти одразу. У полі «СПК» міститься список таких об'єктів, які потрібно перенести, щоб вирішити, чи потрібно перемістити їх до бази даних SQL Server:

  • Таблиці та стовпці

  • Виберіть пункт запити без параметрів.

  • Основні та зовнішні ключі

  • Індекси та значення за замовчуванням

  • Перевірка обмежень (властивість "Дозволити стовпець нульової довжини", "правило перевірки стовпців", "перевірка таблиці")

У цій статті описано, як використовувати звіт про оцінювальну оцінку, у якому відображаються результати перетворення, зокрема помилки, попередження, інформаційні повідомлення, оцінки часу для виконання перенесення, а також окремі кроки з виправлення помилок, які потрібно виконати, перш ніж переходити між ними об'єктів.

Перетворення об'єктів бази даних приймає визначення об'єкта з метаданих Access, перетворює їх на еквівалентний синтаксис Transact-SQL (T-SQL), а потім завантажує цю інформацію в проект. Після цього можна переглянути об'єкти SQL Server або SQL-Лазур та їхні властивості за допомогою провідника SQL Server або SQL-сервера метаданих Azure.

Щоб перетворити, завантажити та перенести об'єкти на SQL Server, виконайте цей посібник.

Порада.    Після успішного перенесення бази даних Access збережіть файл проекту для подальшого використання, щоб можна було знову перенести дані для тестування або остаточного перенесення.

Зв'язування таблиць

Спробуйте інсталювати найновішу версію драйверів OLE SQL Server і драйвера ODBC замість вітчизняних драйверів SQL Server, які постачаються з ОС Windows. Не тільки нові драйвери швидші, але вони підтримують нові функції в Azure SQL, які не є попередніми драйверами. Ви можете інсталювати драйвери на кожному комп'ютері, де використовується перетворена база даних. Щоб отримати докладніші відомості, ознайомтеся з драйвером Microsoft OLE DB 18 для SQL Server і драйвером Microsoft ODBC 17 для SQL Server.

Після перенесення таблиць Access можна створити посилання на таблиці в SQL Server, де тепер розміщено дані. Зв'язування безпосередньо з Access також надає простіший спосіб переглядати дані, а не використовувати складніші засоби керування SQL Server.  Ви можете запитувати та редагувати зв'язані дані в залежності від дозволів, які настроєно адміністратором бази даних SQL Server.

Примітка.    Якщо під час зв'язування з базою даних SQL Server ви створюєте DSN ODBC, створіть один і той самий DSN на всіх машинах, які використовують нову програму або використовуєте рядок підключення, збережений у файлі DSN.

Щоб отримати докладніші відомості, див. посилання на або імпорт даних із бази даних Azure SQL Server і Імпорт або зв'язування з даними в базі даних SQL Server.

Порада   Не забувайте використовувати Диспетчер зв'язаних таблиць у програмі Access, щоб зручніше оновлювати та повторно зв'язати таблиці. Докладні відомості наведено в статті керування зв'язаними таблицями.

Перевірка та редагування

У наведених нижче розділах описано поширені проблеми, які можуть виникати під час перенесення та способи їх вирішення.

Запити

Перетворюються лише запити на вибірку; інші запити відсутні, зокрема виберіть запити, які мають параметри. Деякі запити можуть не повністю перетворювати, а помилки запиту на запити в процесі перетворення. Ви можете вручну редагувати об'єкти, які не перетворюються за допомогою синтаксису T-SQL. Синтаксичні помилки можуть також знадобитися вручну конвертувати спеціальні функції та типи даних для доступу до сервера SQL Server. Щоб отримати докладніші відомості, ознайомтеся з порівнянням SQL Server із SQL-сервером tssql.

Типи даних

У програмі Access і SQL Server є аналогічні типи даних, але слід враховувати наведені нижче потенційні проблеми.

Велике число    Тип даних "велике число" зберігає негрошову, числове значення та сумісний із типом даних SQL велике ціле. Цей тип даних можна використовувати для ефективного обчислення великих чисел 64, але для цього потрібно використовувати формат файлу бази даних Access 16 (16.0.7812 або пізніша версія). accdb. Щоб отримати докладніші відомості, ознайомтеся з використанням типу даних "велике число " та виберіть один із 64-розрядної або 32-розрядної версії Office.

Так/Ні    За замовчуванням стовпець "так/ні" перетворюється на поле SQL Server bit. Щоб уникнути блокування запису, Переконайтеся, що в полі "біт" настроєно значення NULL-значень. У спзр ви можете вибрати бітовий стовпець, щоб установити властивість дозволити Null -значення "ні". У TSQL скористайтеся заявами " створити таблицю " або " змінити таблицю ".

Дата й час    Існує кілька міркувань дати й часу:

  • Якщо рівень сумісності бази даних має 130 (SQL Server 2016) або новішої версії, а Зв'язана таблиця містить один або кілька стовпців дати й часу або datetime2, ця таблиця може повертати повідомлення #deleted в результатах. Докладні відомості наведено в статті доступ до зв'язаної таблиці до бази даних SQL Server, що повертає #deleted.

  • Використовуйте тип даних datetime2 , який має більший проміжок часу, ніж дата й час.

  • Під час запиту на дати в SQL Server враховується час, а також дата. Наприклад:

    • DateOrdered між 1/1/19 і 1/31/19 не можуть містити всі замовлення.

    • DateOrdered між 1/1/19 00:00:00 AM і 1/31/19 11:59:59 PM не включає всі замовлення.

вкладення;   Тип даних вкладення зберігає файл у базі даних Access. На сервері SQL Server є кілька варіантів, які слід враховувати. Файли можна видобути з бази даних Access, а потім зберігати посилання на файли в базі даних SQL Server. Крім того, ви можете використовувати FILESTREAM, FileStream або віддалений магазин BLOB-об'єктів (RBS), щоб зберегти вкладення, збережені в базі даних SQL Server.

Гіперпосилання    У таблицях Access є стовпці гіперпосилань, які не підтримують SQL Server. За замовчуванням ці стовпці буде перетворено на стовпці nvarpar (Max) у SQL Server, але можна настроїти зіставлення, щоб вибрати менший тип даних. У рішенні Access все одно можна використовувати поведінку гіперпосилань у формах і звітах, якщо для властивості гіперпосилання настроєно значення TRUE.

Багатозначне поле    Багатозначне поле Access перетворюється на SQL Server як поле ntext, що містить розділений набір значень. Оскільки SQL Server не підтримує багатозначний тип даних, який моделює зв'язок "багато-до-багатьох", може знадобитися додаткова переробка та перетворення.

Докладні відомості про зіставлення типів даних Access і SQL Server наведено в статті порівняння типів даних.

Примітка.    Багатозначні поля не перетворюються, і їх припинено в Access 2010.

Докладні відомості наведено в статті Дата й час, типи рядків і двійкових типіві числові типи.

Visual Basic

Хоча VBA не підтримується на сервері SQL Server, зверніть увагу на такі можливі проблеми:

Функції VBA в запитах    Запити на доступ підтримують функції VBA для даних у стовпці запиту. Але запити на доступ, які використовують функції VBA, не можна запускати на сервері SQL Server, тому всі запитувані дані передаються до Microsoft Access для обробки. У більшості випадків ці запити слід перетворити на передавання запитів.

Визначені користувачем функції в запитах    Запити Microsoft Access підтримують використання функцій, визначених у модулях VBA для обробки даних, переданих їм. Запити можуть бути автономними запитами, SQL-заявами у джерелах записів форм і звітів, джерел даних полів зі списками та списками у формах, звітах і полях таблиці, а також у виразах правил за замовчуванням або для перевірки. SQL Server не вдалося виконати ці визначені користувачем функції. Можливо, знадобиться виконати редизайн цих функцій уручну та перетворити їх на збережену процедуру на сервері SQL Server.

Оптимізація продуктивності

На сьогоднішній день найважливіший спосіб оптимізації продуктивності за допомогою нового сервера SQL Server має вирішити, коли слід використовувати локальні або віддалені запити. Під час перенесення даних до сервера SQL Server також можна перейти з файлового сервера до моделі обчислювальних баз даних клієнт-Server. Виконайте наведені нижче загальні вказівки.

  • Запускати лише запити для читання в клієнті, щоб отримати швидкий доступ.

  • Виконайте довгі, читання та записування запитів на сервері, щоб скористатися перевагами більшої обробки електроенергії.

  • Мінімізуйте мережний трафік за допомогою фільтрів і агрегації, щоб передавати лише потрібні дані.

Оптимізація продуктивності в моделі бази даних клієнтського сервера

Докладні відомості наведено в статті створення запиту на передаванняданих.

Нижче наведено додаткові рекомендації, Рекомендовані.

Розміщення логіки на сервері    У програмі також можна використовувати подання, користувацькі функції, збережену процедуру, Обчислювані поля, а також тригери для централізаційного та спільного доступу до логіки програми, правил бізнесу та політик, комплексних запитів, перевірки даних і коду цілісності посилальних обмежень Server, а не на клієнті. Запитайте себе, чи можна виконати цей запит або завдання на сервері ще краще та швидше? Нарешті, перевірте кожний запит, щоб забезпечити оптимальну продуктивність.

Використання подань у формах і звітах    У програмі Access виконайте наведені нижче дії.

  • Для форм використовуйте подання SQL для форми, що доступна лише для читання, і Індексовано подання SQL для форми читання та записування як джерело записів.

  • Щоб отримати звіти, використовуйте подання SQL як джерело записів. Однак створіть окреме подання для кожного звіту, щоб можна було легше оновлювати певний звіт без впливу на інші звіти.

Згортання завантаження даних у формі або звіті    Не відображати дані, доки користувач не запитає її. Наприклад, залиште властивість RecordSource пустим, щоб користувачі могли вибрати фільтр у формі, а потім заповнити властивість RecordSource за допомогою фільтра. Або використайте речення WHERE у DoCmd. OpenForm і DoCmd. OpenForm, щоб відобразити точні записи, необхідні користувачу. Зверніть увагу на вимкнення функції переходу між записами.

Будьте уважні з різнорідними запитами   Уникайте виконання запиту, який об'єднує таблицю локальної таблиці Access і зв'язану таблицю SQL Server, яку іноді називають гібридним запитом. Цей тип запиту все одно вимагає, щоб програма Access завантажала всі дані SQL Server на локальний комп'ютер, а потім запустіть запит, не запускається запит у SQL Server.

Використання локальних таблиць    Використовуйте локальні таблиці для даних, які рідко змінюються, наприклад список країн або провінцій в країні або регіоні. Статичні таблиці часто використовуються для фільтрування та можуть працювати краще в передній частині Access.

Щоб отримати докладніші відомості, перегляньте статтю радник з настроювання обробника баз даних, за допомогою засобу аналізу продуктивності можна оптимізувати базу даних Access, а також оптимізувати програми Microsoft Office Access, зв'язані з SQL Server.

Додаткові відомості

Посібник із перенесення баз даних Azure

блоґу Microsoft перенесення даних

Microsoft Access до ПЕРЕНЕСЕННЯ SQL Server, перетворення та перетворення

Методи спільного доступу до локальної бази даних Access

Примітка.:  Цю сторінку перекладено за допомогою засобу автоматичного перекладу, тому вона може містити смислові, синтаксичні або граматичні помилки. Ми вважаємо, що цей вміст стане вам у пригоді. Повідомте нас, чи була ця інформація корисною. Для довідки цю статтю можна переглянути англійською мовою.

Удосконалення навичок роботи з Office
Ознайомтеся з навчальними матеріалами
Отримуйте нові функції раніше за інших
Приєднайтеся до оцінювачів Office

Ця інформація корисна?

Дякуємо за ваш відгук!

Дякуємо, що знайшли час і надіслали нам відгук! Можливо, у нас не буде часу відповісти на кожен коментар, але докладемо максимум зусиль, щоб переглянути їх усі. Вас цікавить, як ми використовуємо ваші відгуки?

×