---
title: "MySQL - SQL Server taşıma, tarayıcınızda"
description: "Bir MySQL veya MariaDB veritabanını SQL Server hedefine taşıyın: dökümünü aynı tablolar, anahtarlar ve verilerle bir betiğe dönüştürün, her değişikliğin raporuyla."
canonical: https://intosql.com/tr/mysql-sql-server-donusturme
last_updated: 2026-10-15
---

# MySQL - SQL Server taşıma, tarayıcınızda

mysqldump, mariadb-dump, mysqlpump, phpMyAdmin veya Adminer ile alınmış bir dökümü .sql veya .sql.gz olarak bırakın ve aynı tablolar, anahtarlar, indeksler ve verilerle bir SQL Server betiği indirin. SQL Server tarafından olduğu gibi tutulamayan her değer ve taşınmayan her nesne raporda listelenir.

[MySQL - SQL Server taşıma kılavuzu](https://intosql.com/docs/migrations/mysql-to-sql-server)

[MySQL - SQL Server veri türleri](https://intosql.com/docs/types/mysql-to-sql-server)

## MySQL ile SQL Server arasında neler değişir

Her satır, dönüştürücünün uyguladığı bir kuraldır; yanında, kural verilerinizde bir şeyi değiştirdiğinde yazılan rapor satırı yer alır.

| MySQL içinde | SQL Server içinde | Rapor satırı |
| --- | --- | --- |
| TINYINT(1), BOOL | her değer 0 veya 1 ise bit, değilse smallint | `bool_kept_numeric` |
| UNSIGNED integers | TINYINT UNSIGNED tinyint olarak; diğerleri negatif olmadığını denetleyen bir CHECK ile bir sonraki geniş tam sayı, BIGINT UNSIGNED her değer sığıyorsa bigint, değilse decimal(38,0) | `unsigned_widened` |
| ZEROFILL and display widths | kaldırılır | `zerofill_dropped` |
| FLOAT(M,D) | ölçek olmadan real veya float | `float_scale_dropped` |
| DECIMAL(p,s) | 38 basamağa kadar decimal(p,s); ötesi nvarchar | `decimal_as_text` |
| BIT(1), BIT(n) | bit; 63 bite kadar bigint; BIT(64) için decimal(20,0) |  |
| zero, partial or impossible dates (0000-00-00, 2024-02-30) | NULL | `invalid_date_null` |
| NOT NULL columns with values that become NULL | NOT NULL kaldırılır | `not_null_relaxed` |
| DEFAULT '0000-00-00' | varsayılan değer yok | `zero_date_default` |
| TIME | her değer bir gün içindeyse time, değilse nvarchar | `time_as_interval` |
| YEAR | aralığını denetleyen bir CHECK ile smallint |  |
| CHAR(n), VARCHAR(n) | nvarchar(n) |  |
| text with characters past U+FFFF (emoji) in VARCHAR(n) | nvarchar(2n), 4000'i aşınca nvarchar(max) | `text_length_widened` |
| DATETIME | datetime2 |  |
| TIMESTAMP | dökümün belirttiği saat diliminde datetimeoffset, belirtmiyorsa UTC | `timestamp_zone_assumed` |
| ENUM | değerlerini denetleyen bir CHECK ile nvarchar |  |
| ENUM holding '' (MySQL's error value) | CHECK'in izin verdiği boş değer | `enum_invalid_value` |
| ENUM holding values outside its list | CHECK yok | `enum_check_skipped` |
| SET | MySQL'in yazdığı şekliyle nvarchar ('a,b') |  |
| JSON | nvarchar(max) |  |
| NUL bytes in text | korunur |  |
| text that isn't valid in its character set | hatalı baytlar yerine koyma karakteri olarak | `invalid_utf8_replaced` |
| text decoded twice (Ã±) | olduğu gibi kopyalanır | `mojibake_suspected` |
| AUTO_INCREMENT | sayacı kopyalanan id'lerin ötesine ayarlanmış IDENTITY |  |
| MyISAM AUTO_INCREMENT on the second column of a key | tablo için tek sayaç | `myisam_group_autoincrement` |
| ON UPDATE CURRENT_TIMESTAMP | bir AFTER UPDATE tetikleyicisi | `on_update_trigger` |
| ON UPDATE CURRENT_TIMESTAMP on a table without a primary key | taşınmaz | `on_update_without_key` |
| generated columns | hesaplanan sütunlar, kaynak onları saklıyorsa PERSISTED |  |
| generated columns with functions SQL Server lacks | düz bir sütun | `generated_not_translated` |
| INVISIBLE columns | normal sütunlar | `invisible_column` |
| CHECK constraints | çevrilir, CREATE TABLE içinde satır içi |  |
| CHECK constraints with functions SQL Server lacks | oluşturulmaz | `check_skipped` |
| CHECK ... NOT ENFORCED | oluşturulmaz | `check_not_enforced` |
| defaults with functions SQL Server lacks | varsayılan değer yok | `default_not_translated` |
| keys and indexes on a prefix, c(20) | sütunun tamamı üzerinde bir indeks | `prefix_whole_column` |
| FULLTEXT indexes | oluşturulmaz | `fulltext_not_created` |
| SPATIAL indexes | oluşturulmaz | `spatial_index_not_created` |
| functional indexes, and indexes on columns of unlimited length | oluşturulmaz | `index_skipped` |
| foreign keys | veriden sonra WITH NOCHECK, ardından yetim satırlar için uyarıyla denetlenir |  |
| ON DELETE or ON UPDATE that cascades in a cycle or along a second path | NO ACTION | `foreign_key_action_dropped` |
| foreign keys to columns without a unique key | oluşturulmaz | `foreign_key_skipped` |
| table and column names | yazıldığı gibi; yalnızca büyük/küçük harfle ayrıldıklarında yeniden adlandırılır | `identifier_renamed` |
| names over 116 characters | kısaltılır | `name_shortened` |
| GEOMETRY, POINT, POLYGON... | her değerin SRID'siyle geometry |  |
| INET4, INET6, UUID (MariaDB) | nvarchar(39), uniqueidentifier |  |
| BINARY, VARBINARY, BLOB | binary, varbinary, varbinary(max) |  |
| PARTITION BY | tek tablo | `partitions_dropped` |
| WITH SYSTEM VERSIONING (MariaDB) | mevcut satırları içeren bir tablo | `system_versioning_dropped` |
| MyISAM, MEMORY and other engines | normal bir tablo | `engine_dropped` |
| views, triggers, procedures, functions and events | raporda listelenir | `not_converted_objects` |
| dumps without CREATE TABLE | değerlerden okunan türler | `no_schema` |
| geometries in a dump without CREATE TABLE | geometry |  |
| _ci collations | veritabanının harmanlaması, genellikle büyük/küçük harf duyarsız |  |
| SET NAMES utf8 from utf8mb4 tables | dönüştürülür, uyarıyla | `dump_lost_four_byte_chars` |
| dumps without SET NAMES whose text isn't UTF-8 | Latin-1 (Windows-1252) olarak okunur | `charset_guessed` |
| sjis, cp932, gbk, big5 dumps | uyarıyla UTF-8 olarak okunur | `unsupported_charset` |
| UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows | hesaplanır |  |
| other expressions in rows | NULL | `expression_value` |
| DEFAULT in VALUES | sütunun varsayılan değeri | `default_keyword_filled` |
| DEFAULT in VALUES without a literal default | NULL | `default_keyword_null` |
| REPLACE and INSERT IGNORE | düz satırlar | `replace_as_insert` |
| types IntoSQL doesn't know | nvarchar(max) | `unknown_type` |
| values that don't fit their column | NULL | `invalid_value_null` |
| unreadable geometries | NULL | `bad_geometry` |
| CREATE SEQUENCE (MariaDB) | sonraki değeriyle CREATE SEQUENCE ... AS bigint |  |
| VECTOR(n) (MariaDB 11.7+) | float'ları JSON dizisi olarak tutan nvarchar(max) | `type_replaced` |

## Betiği SQL Server veritabanına yükleyin

Betik tabloları oluşturur, satırları kopyalar, ardından anahtarları, indeksleri ve yabancı anahtarları ekler; böylece hızlı yüklenir ve ilk hatada durur.

```shell
sqlcmd -b -f 65001 -S localhost -d mydb -i mysql.sql_server.sql
```

Yabancı anahtarlar WITH NOCHECK ile eklenir ve ardından denetlenir. Bir satır var olmayan bir satıra işaret ediyorsa betik, yarı yolda başarısız olmak yerine hangi kısıt olduğunu söyler ve onu denetlenmemiş bırakır.

Büyük bir döküm için sqlcmd'yi sunucuyla aynı makinede çalıştırın. En fazla 1000 satırlık her toplu iş kendi başına işlenir; böylece işlem günlüğü küçük kalır.

## En iyi sonuç için MySQL dökümü nasıl alınır

Dönüştürücü, dökümün içerdiğini okur. Bu seçenekler verilerinizin daha fazlasını dökümde tutar:

- --default-character-set=utf8mb4 emoji ve diğer 4 baytlık karakterleri korur; utf8 dökümü bunları dönüştürücü görmeden önce kaybeder.
- --hex-blob ikili sütunları onaltılık olarak yazar; bu biçim sistemler arasında kopyalamada bozulmaz.
- --routines --triggers --events bu nesneleri döküme ekler; böylece rapor onları listeleyebilir.

## Neler dönüştürülmez

Görünümler, tetikleyiciler, saklı yordamlar, fonksiyonlar ve olaylar her veritabanının kendi dilinde yazılır. Raporda adlarıyla listelenirler, asla sessizce atlanmazlar; böylece onları SQL Server için yeniden yazabilirsiniz.

## MySQL - SQL Server dönüştürme hakkında sorular

### Dökümüm yükleniyor mu?

Hayır. Dönüştürücü tarayıcınızda çalışır ve dökümü diskinizden parça parça okur; böylece döküm bilgisayarınızdan hiç çıkmaz. Masaüstü uygulaması ve komut satırı da bilgisayarınızda dönüştürür.

### Döküm ne kadar büyük olabilir?

Dönüştürücü dökümün tamamını asla bellekte tutmaz: dosyayı aralıklar halinde iki kez okur ve betiği ilerledikçe yazar. Birkaç gigabaytlık dökümler tarayıcıda, masaüstü uygulamasında ve komut satırıyla dönüştürülür.

### MariaDB dökümlerini okuyor mu?

Evet. mariadb-dump ile alınan dökümler ve MariaDB 10.3 ile 12 arası sürümlerin dökümleri, MariaDB'nin INET6, INET4 ve UUID sütunları dahil, aynı şekilde dönüştürülür.

### 0000-00-00 tarihlerine ne olur?

SQL Server içinde sıfır tarih yoktur; bu yüzden bunlar NULL olur ve sütun NULL kabul eder. Rapor her sütunda kaç tane olduğunu söyler.

### AUTO_INCREMENT değerleri korunuyor mu?

Evet. Her AUTO_INCREMENT sütunu bir IDENTITY sütunu olur, her satır kendi id'sini korur ve sonraki id en yüksek id'den sonra devam eder; tablonun AUTO_INCREMENT değeri daha yüksekse ondan sonra.

### TINYINT(1) boolean olur mu?

Yalnızca sütundaki her değer 0 veya 1 ise bit olur. 2 veya -1 gibi başka sayılar içeriyorsa sayı olarak kalır ve rapor nedenini söyler; böylece hiçbir değer yanlışlıkla 1 olmaz.

### Saklı yordamlar ve tetikleyiciler ne olur?

Raporda adlarıyla listelenirler ve dönüştürülmezler, çünkü her veritabanı onları kendi dilinde yazar. ON UPDATE CURRENT_TIMESTAMP istisnadır: bir SQL Server tetikleyicisine dönüşür.

### Betik hangi SQL Server sürümlerinde yüklenir?

SQL Server 2017 ile 2025 arası. Aynı betik her birinde yüklenir ve bir sorun çıkarsa ilk hatada durur.

## Kaynak: MySQL

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

## Hedef: SQL Server

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

## Kılavuz ve tüm ikililer

- [SQL Server - MySQL](https://intosql.com/tr/sql-server-mysql-donusturme)
- [MySQL - SQL Server taşıma kılavuzu](https://intosql.com/docs/migrations/mysql-to-sql-server)
- [MySQL - SQL Server veri türleri](https://intosql.com/docs/types/mysql-to-sql-server)
- [Tüm veritabanı ikilileri](https://intosql.com/tr/veritabani-tasima)
