Migracja bazy danych Płatnik z Access 32 bit na MS SQL Server

Chcąc wykonać migrację danych z programu Płatnik zapisanej w formacie Access 32 bit, napotkałem sporo trudności. Wiele osób radzi zainstalować SQL Serwer w wersji 32 bitowej i przenieść najpierw na ten serwer. Następnie na docelowy a później proponują żeby wykonać konwersję stopniowo do najwyższej wersji SQL.
Migracja Płatnik Access na SQL jest to operacja czasochłonna i problematyczna ponieważ potrzebny jest 32 bitowy system operacyjny żeby zainstalować 32 bitowy serwer SQL.

Udało mi się znaleźć rozwiązanie oparte na Microsoft SQL Server Migration Assistant (SSMA) for Access .
Dlatego program do wykonania migracji za darmo można pobrać ze strony Microsoftu https://www.microsoft.com/en-us/download/details.aspx?id=54255.

Migracja Płatnik z Access do SQL

W ustawieniach projektu należy zmienić niektóre typy pól, menu Tools -> Project Settings -> Type Mapping
Migracja Płatnik z Access do SQL

date na datetimetext[*..*]
text[*..*] na varchar[*]
memo na varchar[max]

W ustawieniach projektu na kolejnej zakładce, menu Tools -> Project Settings -> General; Conversion trzeba ustawić by nie były dodawane kolumny ze znacznikami czasu.
Migracja Płatnik z Access do SQL

Jeżeli nie zapomnieliśmy w ustawieniach generalnych projektu wybrać wersji serwera na który będzie przenoszona baza danych, łączymy się z serwerem SQL i wskazujemy gdzie będzie umieszczona nowa baza.

Migracja Płatnik z Access do SQL

Na stronie https://bakus.dev/1343/migracja-platnika-z-axcess-32bit-do-mssql-server-2014 znalazłem informację że po Migracji Płatnik Access na SQL należy usunąć ograniczenia dotyczące zerowej długości wszystkich pól. Operację tą można wykonać korzystając z SQL Management Studio.
Dlatego proponuję użyć poniższego skryptu:

 SELECT CONCAT('ALTER TABLE [', CONSTRAINT_CATALOG, '].[', TABLE_SCHEMA, '].[', TABLE_NAME, '] DROP CONSTRAINT [', CONSTRAINT_NAME, '];')
FROM [PLATNIK].[INFORMATION_SCHEMA].[TABLE_CONSTRAINTS]
WHERE CONSTRAINT_TYPE = 'CHECK'; 

W moim przypadku formuła ta nie zadziałała, aby rozwiązać ten problem, stworzyłem pustą bazę korzystając z programu Płatnik na serwerze MSSQL, zrobiłem migrację prze konwertowanej bazy Płatnik do nowo utworzonej bazy danych.

3 odpowiedzi na “Migracja bazy danych Płatnik z Access 32 bit na MS SQL Server”

  1. PS. „wykonać konwersję stopniowo do najwyższej wersji SQL” – bazę z SQL 2012 wgrywam do SQL 2019 i wszystko działa, może to kwestia Compatibility level, a może przy SQL 2000 – 2005 trzeba było tak kombinować.

  2. „potrzebny jest 32 bitowy system operacyjny żeby zainstalować 32 bitowy serwer SQL” – nie zgodzę się, 32-bitowy SQL 2012 Express działa mi w tej chwili na 64-bitowym Windowsie 11…
    Co do dalszej części instrukcji – to dzięki, też próbowałem sił z SSMA, ale poddałem się jak się okazało że trzeba coś więcej kombinować. Pisałem też do ZUSu na cot@zus.pl ale dostałem odpowiedź że „nie da się” xD

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *