---
title: "MariaDB を SQL Server にブラウザで移行"
description: "MariaDB のデータベースを SQL Server に移行。ダンプを同じテーブル、キー、シーケンス、データを持つスクリプトに変換し、すべての変更をレポートします。"
canonical: https://intosql.com/ja/mariadb-to-sql-server
last_updated: 2026-10-15
---

# MariaDB を SQL Server にブラウザで移行

mariadb-dump、mysqldump、phpMyAdmin、Adminer で作成したダンプ (.sql または .sql.gz) をドロップすると、同じテーブル、キー、インデックス、データを持つ SQL Server スクリプトをダウンロードできます。SQL Server がそのまま保持できない値と、引き継がないオブジェクトは、すべてレポートに記載されます。

[MariaDB から SQL Server への移行ガイド](https://intosql.com/docs/migrations/mariadb-to-sql-server)

[MariaDB から SQL Server へのデータ型](https://intosql.com/docs/types/mariadb-to-sql-server)

## MariaDB から SQL Server で変わること

各行はコンバーターが適用するルールです。ルールによってデータが変わったときにレポートに書かれる行も示します。

| MariaDB では | SQL Server では | レポートの行 |
| --- | --- | --- |
| TINYINT(1), BOOL | すべての値が 0 か 1 なら bit、それ以外は smallint | `bool_kept_numeric` |
| UNSIGNED integers | TINYINT UNSIGNED は tinyint。他は負でないことを確かめる CHECK 付きの 1 段大きい整数型。BIGINT UNSIGNED は、すべての値が収まれば bigint、それ以外は decimal(38,0) | `unsigned_widened` |
| ZEROFILL and display widths | 削除 | `zerofill_dropped` |
| FLOAT(M,D) | real または float、桁数指定なし | `float_scale_dropped` |
| DECIMAL(p,s) | 38 桁までは decimal(p,s)、それを超えると nvarchar | `decimal_as_text` |
| BIT(1), BIT(n) | bit。63 ビットまでは bigint、BIT(64) は 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 を削除 | `not_null_relaxed` |
| DEFAULT '0000-00-00' | デフォルト値なし | `zero_date_default` |
| TIME | すべての値が 1 日以内なら time、それ以外は nvarchar | `time_as_interval` |
| YEAR | 範囲の CHECK 付きの smallint |  |
| CHAR(n), VARCHAR(n) | nvarchar(n) |  |
| text with characters past U+FFFF (emoji) in VARCHAR(n) | nvarchar(2n)、4000 を超えると nvarchar(max) | `text_length_widened` |
| DATETIME | datetime2 |  |
| TIMESTAMP | ダンプが示すタイムゾーンでの datetimeoffset。示されていなければ UTC | `timestamp_zone_assumed` |
| ENUM | 値の CHECK 付きの nvarchar |  |
| ENUM holding '' (MySQL's error value) | チェック制約が許可する空の値 | `enum_invalid_value` |
| ENUM holding values outside its list | CHECK なし | `enum_check_skipped` |
| SET | MySQL が書き出すとおりの nvarchar ('a,b') |  |
| JSON | nvarchar(max) |  |
| NUL bytes in text | 保持 |  |
| text that isn't valid in its character set | 不正なバイトを置換文字に | `invalid_utf8_replaced` |
| text decoded twice (Ã±) | そのままコピー | `mojibake_suspected` |
| AUTO_INCREMENT | IDENTITY、カウンターはコピーした ID の後から |  |
| MyISAM AUTO_INCREMENT on the second column of a key | テーブルに 1 つのカウンター | `myisam_group_autoincrement` |
| ON UPDATE CURRENT_TIMESTAMP | AFTER UPDATE トリガー | `on_update_trigger` |
| ON UPDATE CURRENT_TIMESTAMP on a table without a primary key | 引き継がない | `on_update_without_key` |
| generated columns | 計算列。ソースで保存されていれば PERSISTED |  |
| generated columns with functions SQL Server lacks | 普通の列 | `generated_not_translated` |
| INVISIBLE columns | 通常の列 | `invisible_column` |
| CHECK constraints | 変換して CREATE TABLE 内に記述 |  |
| CHECK constraints with functions SQL Server lacks | 作成しない | `check_skipped` |
| CHECK ... NOT ENFORCED | 作成しない | `check_not_enforced` |
| defaults with functions SQL Server lacks | デフォルト値なし | `default_not_translated` |
| keys and indexes on a prefix, c(20) | 列全体のインデックス | `prefix_whole_column` |
| FULLTEXT indexes | 作成しない | `fulltext_not_created` |
| SPATIAL indexes | 作成しない | `spatial_index_not_created` |
| functional indexes, and indexes on columns of unlimited length | 作成しない | `index_skipped` |
| foreign keys | データの後に WITH NOCHECK で作成してからチェックし、孤立した行があれば警告 |  |
| 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 | 作成しない | `foreign_key_skipped` |
| table and column names | 書かれたとおり。大文字小文字だけが違う場合は名前を変更 | `identifier_renamed` |
| names over 116 characters | 短縮 | `name_shortened` |
| GEOMETRY, POINT, POLYGON... | geometry、各値の SRID 付き |  |
| INET4, INET6, UUID (MariaDB) | nvarchar(39), uniqueidentifier |  |
| BINARY, VARBINARY, BLOB | binary, varbinary, varbinary(max) |  |
| PARTITION BY | 1 つのテーブル | `partitions_dropped` |
| WITH SYSTEM VERSIONING (MariaDB) | 現在の行を持つテーブル | `system_versioning_dropped` |
| MyISAM, MEMORY and other engines | 通常のテーブル | `engine_dropped` |
| views, triggers, procedures, functions and events | レポートに記載 | `not_converted_objects` |
| dumps without CREATE TABLE | 値から読み取った型 | `no_schema` |
| geometries in a dump without CREATE TABLE | geometry |  |
| _ci collations | データベースの照合順序。通常は大文字小文字を区別しない |  |
| SET NAMES utf8 from utf8mb4 tables | 変換し、警告を表示 | `dump_lost_four_byte_chars` |
| dumps without SET NAMES whose text isn't UTF-8 | Latin-1 (Windows-1252) として読み込み | `charset_guessed` |
| sjis, cp932, gbk, big5 dumps | UTF-8 として読み込み、警告を表示 | `unsupported_charset` |
| UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows | 評価 |  |
| other expressions in rows | NULL | `expression_value` |
| DEFAULT in VALUES | 列のデフォルト値 | `default_keyword_filled` |
| DEFAULT in VALUES without a literal default | NULL | `default_keyword_null` |
| REPLACE and INSERT IGNORE | 通常の行 | `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) | 次の値を持つ CREATE SEQUENCE ... AS bigint |  |
| VECTOR(n) (MariaDB 11.7+) | 浮動小数点数の JSON 配列を持つ nvarchar(max) | `type_replaced` |

## スクリプトを SQL Server に読み込む

スクリプトはテーブルを作成して行をコピーしてから、キー、インデックス、外部キーを追加します。そのため読み込みが速く、最初のエラーで止まります。

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

外部キーは WITH NOCHECK で追加してからチェックします。存在しない行を参照している行があれば、途中で失敗する代わりに、どの制約かをスクリプトが示し、その制約は未チェックのまま残します。

大きなダンプでは、サーバーと同じマシンで sqlcmd を実行してください。最大 1000 行のバッチごとにコミットするため、トランザクションログは小さいままです。

## MariaDB を最適な方法でダンプする

コンバーターはダンプの内容を読み取ります。次のオプションを使うと、より多くのデータがダンプに残ります。

- --default-character-set=utf8mb4 を使うと、絵文字などの 4 バイト文字が保たれます。utf8mb3 のダンプでは、コンバーターに届く前にこれらが失われます。
- --hex-blob はバイナリ列と VECTOR の値を 16 進数で書き出すため、システム間でコピーしても壊れません。
- --routines --triggers --events を使うとこれらのオブジェクトがダンプに含まれ、レポートで一覧できます。

## 変換されないもの

ビュー、トリガー、ストアドプロシージャ、関数、イベントは MariaDB 独自の言語で書かれています。黙って削除することはなく、レポートに名前で一覧するので、SQL Server 向けに書き直せます。

## MariaDB から SQL Server への変換に関する質問

### ダンプはアップロードされますか？

いいえ。コンバーターはブラウザ上で動作し、ダンプをディスクから少しずつ読み込むため、ダンプがコンピューターの外に出ることはありません。デスクトップアプリとコマンドラインも、お使いのコンピューター上で変換します。

### ダンプはどのくらいの大きさまで扱えますか？

コンバーターはダンプ全体をメモリに保持しません。ファイルを範囲ごとに 2 回読み、読みながらスクリプトを書き出します。数 GB のダンプも、ブラウザ、デスクトップアプリ、コマンドラインで変換できます。

### どの MariaDB バージョンのダンプに対応していますか？

MariaDB 10.3 から 12 の mariadb-dump と mysqldump で作成したダンプで、INSERT はテーブルごとに 1 つでも行ごとに 1 つでも構いません。すべてのテスト用ダンプは MariaDB 10.11、11.4、11.8 で作成し、ソースとセル単位で比較しています。

### UUID、INET6、JSON、VECTOR の列は保持されますか？

UUID は uniqueidentifier、INET の列は nvarchar、JSON は nvarchar(max)、VECTOR は浮動小数点数の JSON 配列になります。ゼロ日付は NULL になり、レポートで件数を示します。

### AUTO_INCREMENT の値とシーケンスは保持されますか？

はい。各 AUTO_INCREMENT 列は IDENTITY 列になり、最大の ID の後から続きます。シーケンスは SQL Server のシーケンスになり、シーケンスから値を取るデフォルトは引き続きそこから取ります。

### ストアドプロシージャとトリガーはどうなりますか？

データベースごとに独自の言語で書かれるため、変換はせず、レポートに名前で一覧します。

### スクリプトはどの SQL Server バージョンで読み込めますか？

SQL Server 2017 から 2025 です。同じスクリプトをそれぞれで読み込み、問題があれば最初のエラーで止まります。

## MariaDB から

- [MariaDB から PostgreSQL へ](https://intosql.com/ja/mariadb-to-postgresql)
- [MariaDB から MySQL へ](https://intosql.com/ja/mariadb-to-mysql)
- [MariaDB から MariaDB へ](https://intosql.com/ja/mariadb-to-mariadb)
- [MariaDB から SQLite へ](https://intosql.com/ja/mariadb-to-sqlite)
- [MariaDB から Oracle へ](https://intosql.com/ja/mariadb-to-oracle)

## SQL Server へ

- [MySQL から SQL Server へ](https://intosql.com/ja/mysql-to-sql-server)
- [PostgreSQL から SQL Server へ](https://intosql.com/ja/postgresql-to-sql-server)
- [SQL Server から SQL Server へ](https://intosql.com/ja/sql-server-to-sql-server)
- [SQLite から SQL Server へ](https://intosql.com/ja/sqlite-to-sql-server)
- [Oracle から SQL Server へ](https://intosql.com/ja/oracle-to-sql-server)

## ガイドとすべての組み合わせ

- [SQL Server から MariaDB へ](https://intosql.com/ja/sql-server-to-mariadb)
- [MariaDB から SQL Server への移行ガイド](https://intosql.com/docs/migrations/mariadb-to-sql-server)
- [MariaDB から SQL Server へのデータ型](https://intosql.com/docs/types/mariadb-to-sql-server)
- [すべてのデータベースの組み合わせ](https://intosql.com/ja/database-migration)
