Aktualizacja do COMARCH 2026.1 u części firm kończy się błędem po stronie bazy danych Microsoft SQL Server:
Incorrect syntax near the keyword 'IF'
Najczęściej pojawia się w trakcie aktualizacji/konwersji bazy albo przy uruchamianiu modułów po podbiciu wersji. Poniżej masz sprawdzony schemat działania: co to oznacza, skąd się bierze i jak to szybko odblokować.
Objawy problemu
Najczęściej zauważysz jedno z poniższych:
- aktualizacja do 2026.1 przerywa się na etapie wykonywania skryptów SQL,
- konwersja bazy nie kończy się powodzeniem,
- aplikacja uruchamia się, ale część funkcji nie działa / wysypuje się na zapytaniach SQL,
- w logach/komunikatach instalatora widnieje:
Incorrect syntax near the keyword 'IF'.
Skąd bierze się ten błąd?
Ten komunikat niemal zawsze oznacza niezgodność składni SQL w skrypcie aktualizacyjnym z wersją silnika SQL Server, na której pracuje Twoja baza.
W praktyce: COMARCH 2026.1 wykonuje skrypty, które wymagają nowszego SQL (funkcje/składnia T-SQL), a serwer bazodanowy jest zbyt stary albo nie ma wymaganych poprawek (CU).
Najszybsze rozwiązanie (rekomendowane)
1) Zaktualizuj Microsoft SQL Server do min. 2017 + poprawki CU
Wymagane minimum: SQL Server 2017 + aktualne Cumulative Update (CU).
Co warto zrobić po kolei (w skrócie, bezpiecznie):
- Zrób pełny backup bazy (oraz – jeśli to możliwe – snapshot VM).
- Sprawdź wersję SQL (na serwerze SQL, w SSMS):
SELECT @@VERSION;
- Jeżeli masz starszą wersję niż 2017 – wykonaj upgrade do SQL 2017 (lub nowszego).
- Po upgrade koniecznie doinstaluj aktualny CU (same „gołe” wydanie może nie wystarczyć).
- Uruchom ponownie usługę SQL i dopiero wtedy ponów aktualizację/konwersję COMARCH 2026.1.
Ważne: Nie rób tego „na żywca” w godzinach pracy, jeśli firma stoi na tej bazie. Zaplanuj okno serwisowe.
Gdy nadal sypie błędem – szybka ścieżka awaryjna
Jeżeli musisz pilnie przywrócić działanie systemu (np. księgowość/handel nie może stać), masz bezpieczny wariant „cofki” i ponowienia aktualizacji.
2) Cofnij się do wersji 2026.0.1, wykonaj aktualizację i konwersję, a potem wróć do 2026.1
Link do paczki:
- 2026.0.1:
https://www.ibard.com/d/ebead88f4b10a818ce8a54181f4b7d02ff8d607b#/
Procedura (logicznie, krok po kroku):
- Backup bazy + backup katalogów programu (minimum).
- Zainstaluj/uruchom wersję COMARCH 2026.0.1.
- Wykonaj aktualizację i konwersję bazy na 2026.0.1 (do końca, bez błędów).
- Dopiero po udanej konwersji przejdź ponownie na COMARCH 2026.1 i powtórz proces aktualizacji.
To podejście często „przeprowadza” bazę przez etap pośredni i redukuje ryzyko, że skrypty 2026.1 natrafią na nieprzygotowany schemat.
Checklista diagnostyczna (gdy chcesz szybko ocenić sytuację)
- ✅ Jaka jest wersja SQL? (mniej niż 2017 = prawie pewna przyczyna)
- ✅ Czy SQL ma aktualne CU?
- ✅ Czy na serwerze jest SSMS i masz możliwość podglądu logów?
- ✅ Czy masz aktualny backup bazy przed zmianami?
- ✅ Czy konwersja bazy na 2026.0.1 przechodzi poprawnie?
Kiedy warto od razu wezwać wsparcie?
Jeżeli:
- baza jest duża i krytyczna (produkcja/księgowość),
- update robi się na serwerze terminalowym/klastrze,
- masz kilka instancji SQL i nie jesteś pewien, na której pracuje COMARCH,
- pojawiają się dodatkowe błędy w logach (timeouty, uprawnienia, blokady, uszkodzone indeksy),
…to zamiast „kręcić śrubki” na ślepo, lepiej zrobić to metodycznie.
3) Skontaktuj się z wsparciem IT DSERVE
W DSERVE możemy przejąć temat end-to-end: weryfikacja wersji SQL, backupy, upgrade SQL, poprawki CU, bezpieczna konwersja COMARCH, testy i przywrócenie dostępności.
Podsumowanie
Jeśli w COMARCH 2026.1 widzisz błąd:
Incorrect syntax near the keyword 'IF'
to najczęściej oznacza:
- SQL Server jest za stary lub bez CU → aktualizuj min. do SQL 2017 + CU,
- jeśli potrzebujesz szybkiej awaryjnej ścieżki → cofka do 2026.0.1, konwersja, potem powrót do 2026.1,
- gdy temat jest krytyczny → zgłoś to do wsparcia IT DSERVE.