---
title: "Migracja SQL Server do MySQL w przeglądarce"
description: "Migruj bazę SQL Server do MySQL: zamień skrypt wygenerowany przez SSMS w skrypt z tymi samymi tabelami, kluczami i danymi oraz raportem każdej zmiany."
canonical: https://intosql.com/pl/sql-server-do-mysql
last_updated: 2026-10-15
---

# Migracja SQL Server do MySQL w przeglądarce

Upuść skrypt, który Generate Scripts w SSMS zapisuje ze schematem i danymi, jako .sql lub .sql.gz, w UTF-16 lub UTF-8, i pobierz skrypt MySQL z tymi samymi tabelami, kluczami, indeksami i danymi. Każda wartość, której MySQL nie może przechować bez zmian, i każdy obiekt, którego nie przenosi, są wymienione w raporcie.

[Przewodnik migracji SQL Server do MySQL](https://intosql.com/docs/migrations/sql-server-to-mysql)

[Typy danych z SQL Server do MySQL](https://intosql.com/docs/types/sql-server-to-mysql)

## Co zmienia się między SQL Server a MySQL

Każdy wiersz to reguła stosowana przez konwerter, z wpisem, który dodaje do raportu, gdy reguła coś zmienia w twoich danych.

| W SQL Server | W MySQL | Wpis w raporcie |
| --- | --- | --- |
| bit | tinyint(1) |  |
| char(n), varchar(n), nchar(n), nvarchar(n), varchar(max), text | char(n), varchar(n) do 1024 znaków, powyżej typy text |  |
| decimal(p,s), money, smallmoney | decimal(p,s); money jako decimal(19,4) |  |
| datetime, datetime2, smalldatetime | datetime(p) |  |
| datetime2(7), time(7) and datetimeoffset(7) | sześć cyfr ułamka sekundy, siódma obcięta | `fraction_cut` |
| datetimeoffset | datetime(p) w UTC | `moments_as_utc` |
| time | time(p) |  |
| dates before the year 1000 | NULL | `date_out_of_range` |
| json (SQL Server 2025) | json |  |
| uniqueidentifier | char(36) |  |
| binary, varbinary, image | binary(n), varbinary(n) i typy blob |  |
| geometry, geography | blob z własnymi bajtami SQL Server | `spatial_as_native` |
| rowversion, timestamp | blob, pusty | `rowversion_empty` |
| xml, sql_variant, hierarchyid, vector | longtext | `type_replaced` |
| collations that ignore case (_CI_) | dokładne porównanie (utf8mb4_bin) | `case_insensitive_collation` |
| IDENTITY | AUTO_INCREMENT, kontynuowane po najwyższym id |  |
| IDENTITY columns that don't lead the primary key | zwykła liczba całkowita | `counter_dropped` |
| CREATE SEQUENCE | nie jest tworzone | `sequence_not_converted` |
| computed columns | kolumny generowane, STORED przy PERSISTED, w przeciwnym razie VIRTUAL |  |
| computed columns with functions MySQL lacks | zwykła kolumna | `generated_not_translated` |
| defaults with functions MySQL lacks, and NEXT VALUE FOR | brak wartości domyślnej | `default_not_translated` |
| CHECK constraints | przetłumaczone |  |
| CHECK constraints with functions MySQL lacks | nie jest tworzone | `check_skipped` |
| CHECK constraints added WITH NOCHECK or disabled | nie jest tworzone | `check_not_enforced` |
| filtered and columnstore indexes | nie jest tworzone | `index_skipped` |
| foreign keys | klucze obce, ładowane z FOREIGN_KEY_CHECKS=0 |  |
| foreign keys to tables the dump doesn't create | nie jest tworzone | `foreign_key_skipped` |
| tables on a partition scheme | jedna tabela z wierszami wszystkich partycji | `partitions_dropped` |
| temporal tables (SYSTEM_VERSIONING) | dwie tabele: bieżące wiersze i historia | `system_versioning_dropped` |
| schemas | jedna baza danych, nazwa każdej tabeli zaczyna się od nazwy jej schematu | `schemas_merged` |
| NOT NULL columns with values that become NULL | NOT NULL usunięte | `not_null_relaxed` |
| views, functions, procedures, triggers, synonyms, types and partition functions | wymienione w raporcie | `not_converted_objects` |
| scripts without CREATE TABLE (data only) | typy odczytane z wartości | `no_schema` |
| expressions in INSERT values | NULL | `expression_value` |
| types IntoSQL doesn't know | longtext | `unknown_type` |
| NUL characters in text | zachowane |  |
| text that isn't valid in its encoding | błędne bajty jako znak zastępczy | `invalid_utf8_replaced` |
| text decoded twice (Ã±) | skopiowane bez zmian | `mojibake_suspected` |

## Załaduj skrypt do MySQL

Skrypt tworzy tabele, kopiuje wiersze, a potem dodaje klucze, indeksy i klucze obce, więc ładuje się szybko i zatrzymuje przy pierwszym błędzie.

```shell
mysql --default-character-set=utf8mb4 mydb < sql_server.mysql.sql
```

Klucze obce są tworzone tak, jak deklaruje je zrzut, z FOREIGN_KEY_CHECKS=0 podczas ładowania wierszy, więc wiersz wskazujący na brakujący wiersz nie zatrzymuje ładowania.

Przy dużym zrzucie uruchom klienta na tej samej maszynie co serwer i zwiększ max_allowed_packet, jeśli pojedynczy wiersz jest bardzo duży.

IntoSQL Pro ładuje plik prosto do MySQL z aplikacji na komputer lub wiersza poleceń, bez pisania skryptu.

## Jak zrobić zrzut SQL Server dla najlepszego wyniku

Konwerter odczytuje to, co zawiera zrzut. Te opcje zachowują w nim więcej twoich danych:

- W SSMS kliknij prawym przyciskiem bazę danych, Tasks, Generate Scripts i wybierz tabele. dbatools, mssql-scripter i inne narzędzia oparte na tej samej bibliotece zapisują taki sam skrypt.
- W sekcji Advanced ustaw Types of data to script na Schema and data. Skrypt samego schematu ma tabele bez wierszy.
- Zapisz go jako Unicode, domyślnie w SSMS, lub jako UTF-8: oba są czytane tak samo, a gzip też działa.

## Co nie jest konwertowane

Widoki, funkcje, procedury, wyzwalacze, synonimy, reguły i polityki bezpieczeństwa są pisane w T-SQL. Raport wymienia je z nazwy i nigdy nie pomija ich po cichu, więc możesz je przepisać dla MySQL.

## Pytania o konwersję SQL Server do MySQL

### Czy mój zrzut jest wysyłany?

Nie. Konwerter działa w przeglądarce i odczytuje zrzut z dysku po kawałku, więc nigdy nie opuszcza on twojego komputera. Aplikacja na komputer i wiersz poleceń też konwertują na twoim komputerze.

### Jak duży może być zrzut?

Konwerter nigdy nie trzyma całego zrzutu w pamięci: czyta plik dwa razy, fragmentami, i zapisuje skrypt na bieżąco. Zrzuty wielogigabajtowe konwertują się w przeglądarce, w aplikacji na komputer i w wierszu poleceń.

### Czy odczytuje plik UTF-16 zapisany przez SSMS?

Tak. SSMS domyślnie zapisuje skrypty jako UTF-16, a konwerter czyta UTF-16 i UTF-8 tak samo, spakowane gzip lub nie, z GO między partiami.

### Z jakich wersji SQL Server może pochodzić skrypt?

Skrypty zapisane przez SSMS, dbatools lub mssql-scripter z SQL Server od wersji 2017. Każdy testowy skrypt pochodzi z SQL Server 2017, 2022 i 2025 i jest porównywany ze źródłem komórka po komórce.

### Czy wartości IDENTITY są zachowywane?

Tak, dla jednej kolumny na tabelę: kolumna IDENTITY, która zaczyna klucz główny, staje się AUTO_INCREMENT i idzie dalej po najwyższym id. Sekwencje nie są tworzone, bo MySQL ich nie ma, a raport o tym mówi.

### Co dzieje się z money, datetimeoffset i innymi typami SQL Server?

bit staje się tinyint(1), money decimal(19,4), uniqueidentifier char(36), a datetimeoffset datetime w UTC. Schematy stają się prefiksami nazw tabel w jednej bazie danych. Kolumny, które ignorowały wielkość liter, porównują dokładnie, a raport podaje, których to dotyczy.

### A procedury, wyzwalacze i widoki?

Raport wymienia je z nazwy, ale nie są konwertowane, bo każda baza danych zapisuje je we własnym języku.

### Na jakich wersjach MySQL ładuje się skrypt?

MySQL 5.7 i nowsze. Każdy testowy skrypt ładuje się na 5.7 i 9 i zatrzymuje przy pierwszym błędzie, jeśli coś pójdzie nie tak.

## Z SQL Server

- [SQL Server do PostgreSQL](https://intosql.com/pl/sql-server-do-postgresql)
- [SQL Server do MariaDB](https://intosql.com/pl/sql-server-do-mariadb)
- [SQL Server do SQLite](https://intosql.com/pl/sql-server-do-sqlite)
- [SQL Server do SQL Server](https://intosql.com/pl/sql-server-do-sql-server)
- [SQL Server do Oracle](https://intosql.com/pl/sql-server-do-oracle)

## Do MySQL

- [MySQL do MySQL](https://intosql.com/pl/mysql-do-mysql)
- [MariaDB do MySQL](https://intosql.com/pl/mariadb-do-mysql)
- [PostgreSQL do MySQL](https://intosql.com/pl/postgresql-do-mysql)
- [SQLite do MySQL](https://intosql.com/pl/sqlite-do-mysql)
- [Oracle do MySQL](https://intosql.com/pl/oracle-do-mysql)

## Przewodnik i każda para

- [MySQL do SQL Server](https://intosql.com/pl/mysql-do-sql-server)
- [Przewodnik migracji SQL Server do MySQL](https://intosql.com/docs/migrations/sql-server-to-mysql)
- [Typy danych z SQL Server do MySQL](https://intosql.com/docs/types/sql-server-to-mysql)
- [Każda para baz danych](https://intosql.com/pl/migracja-bazy-danych)
