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

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

SSMS の「スクリプトの生成」でスキーマとデータを含めて書き出したスクリプト (.sql または .sql.gz、UTF-16 または UTF-8) をドロップすると、同じテーブル、キー、インデックス、データを持つ MariaDB スクリプトをダウンロードできます。MariaDB がそのまま保持できない値と、引き継がないオブジェクトは、すべてレポートに記載されます。

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

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

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

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

| SQL Server では | MariaDB では | レポートの行 |
| --- | --- | --- |
| bit | tinyint(1) |  |
| char(n), varchar(n), nchar(n), nvarchar(n), varchar(max), text | char(n)、1024 文字までは varchar(n)、それを超えると text 型 |  |
| decimal(p,s), money, smallmoney | decimal(p,s)、money は decimal(19,4) |  |
| datetime, datetime2, smalldatetime | datetime(p) |  |
| datetime2(7), time(7) and datetimeoffset(7) | 秒の小数は 6 桁、7 桁目は切り捨て | `fraction_cut` |
| datetimeoffset | UTC の datetime(p) | `moments_as_utc` |
| time | time(p) |  |
| dates before the year 1000 | NULL | `date_out_of_range` |
| json (SQL Server 2025) | json (JSON チェック付きの longtext) |  |
| uniqueidentifier | uuid |  |
| binary, varbinary, image | binary(n)、varbinary(n)、blob 型 |  |
| geometry, geography | SQL Server 独自のバイト列を持つ blob | `spatial_as_native` |
| rowversion, timestamp | blob、空 | `rowversion_empty` |
| xml, sql_variant, hierarchyid, vector | longtext | `type_replaced` |
| collations that ignore case (_CI_) | 厳密な比較 (utf8mb4_bin) | `case_insensitive_collation` |
| IDENTITY | AUTO_INCREMENT、最大の ID の後から継続 |  |
| IDENTITY columns that don't lead the primary key | 普通の整数 | `counter_dropped` |
| CREATE SEQUENCE | 同じオプションの CREATE SEQUENCE |  |
| computed columns | 生成列、PERSISTED なら STORED、それ以外は VIRTUAL |  |
| computed columns with functions MariaDB lacks | 普通の列 | `generated_not_translated` |
| defaults with functions MariaDB lacks, and NEXT VALUE FOR | デフォルト値なし | `default_not_translated` |
| CHECK constraints | 変換済み |  |
| CHECK constraints with functions MariaDB lacks | 作成しない | `check_skipped` |
| CHECK constraints added WITH NOCHECK or disabled | 作成しない | `check_not_enforced` |
| filtered and columnstore indexes | 作成しない | `index_skipped` |
| foreign keys | 外部キー、FOREIGN_KEY_CHECKS=0 で読み込み |  |
| foreign keys to tables the dump doesn't create | 作成しない | `foreign_key_skipped` |
| tables on a partition scheme | すべてのパーティションの行を持つ 1 つのテーブル | `partitions_dropped` |
| temporal tables (SYSTEM_VERSIONING) | WITH SYSTEM VERSIONING、現在の行から開始。履歴テーブルは普通のテーブルとして |  |
| schemas | 1 つのデータベース、テーブル名の先頭にスキーマ名 | `schemas_merged` |
| NOT NULL columns with values that become NULL | NOT NULL を削除 | `not_null_relaxed` |
| views, functions, procedures, triggers, synonyms, types and partition functions | レポートに記載 | `not_converted_objects` |
| scripts without CREATE TABLE (data only) | 値から読み取った型 | `no_schema` |
| expressions in INSERT values | NULL | `expression_value` |
| types IntoSQL doesn't know | longtext | `unknown_type` |
| NUL characters in text | 保持 |  |
| text that isn't valid in its encoding | 不正なバイトを置換文字に | `invalid_utf8_replaced` |
| text decoded twice (Ã±) | そのままコピー | `mojibake_suspected` |

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

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

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

外部キーはダンプが宣言するとおりに作成し、mysqldump と同様に、行の読み込み中は FOREIGN_KEY_CHECKS=0 にします。

大きなダンプでは、サーバーと同じマシンでクライアントを実行し、1 行がとても大きい場合は max_allowed_packet を上げてください。

IntoSQL Pro なら、デスクトップアプリやコマンドラインからファイルを MariaDB に直接読み込めます。スクリプトを書き出す必要はありません。

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

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

- SSMS でデータベースを右クリックし、[タスク]、[スクリプトの生成] を選んでテーブルを選択します。dbatools、mssql-scripter など同じライブラリを使うツールも同じスクリプトを書き出します。
- [詳細設定] で [スクリプトを作成するデータの種類] を [スキーマとデータ] にします。スキーマだけのスクリプトでは、テーブルに行がありません。
- SSMS のデフォルトである Unicode、または UTF-8 で保存します。どちらも同じように読み込め、gzip も使えます。

## 変換されないもの

ビュー、関数、プロシージャ、トリガー、シノニム、ルール、セキュリティポリシーは T-SQL で書かれています。黙って削除することはなく、レポートに名前で一覧するので、MariaDB 向けに書き直せます。

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

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

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

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

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

### SSMS が保存する UTF-16 のファイルを読めますか？

はい。SSMS はデフォルトでスクリプトを UTF-16 で保存しますが、コンバーターは UTF-16 も UTF-8 も、gzip の有無にかかわらず、バッチ間の GO を含めて同じように読み込みます。

### どの SQL Server バージョンのスクリプトに対応していますか？

SQL Server 2017 以降から SSMS、dbatools、mssql-scripter で書き出したスクリプトです。すべてのテスト用スクリプトは SQL Server 2017、2022、2025 で作成し、ソースとセル単位で比較しています。

### IDENTITY の値は保持されますか？

はい、テーブルごとに 1 列です。主キーの先頭にある IDENTITY 列は AUTO_INCREMENT になり、最大の ID の後から続きます。シーケンスは同じオプションの MariaDB のシーケンスになります。

### money、datetimeoffset など SQL Server の型はどうなりますか？

bit は tinyint(1)、money は decimal(19,4)、uniqueidentifier は UUID、datetimeoffset は UTC の datetime になります。テンポラルテーブルはシステムバージョニングを保ちます。大文字と小文字を区別しなかった列は厳密に比較するようになり、対象の列はレポートに記載されます。

### プロシージャ、トリガー、ビューはどうなりますか？

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

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

MariaDB 10.11 以降です。すべてのテスト用スクリプトを 10.11 と 11.4 で読み込み、問題があれば最初のエラーで止まります。

## SQL Server から

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

## MariaDB へ

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

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

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