---
title: "Migrare SQL Server a MariaDB nel browser"
description: "Migra un database SQL Server a MariaDB: converti lo script generato da SSMS in uno con le stesse tabelle, chiavi e dati, e un report di ogni modifica."
canonical: https://intosql.com/it/sql-server-in-mariadb
last_updated: 2026-10-15
---

# Migrare SQL Server a MariaDB nel browser

Trascina lo script che Generate Scripts di SSMS scrive con schema e dati, come .sql o .sql.gz, UTF-16 o UTF-8, e scarica uno script per MariaDB con le stesse tabelle, chiavi, indici e dati. Ogni valore che MariaDB non può contenere così com'è, e ogni oggetto che non supporta, è elencato nel report.

[Guida alla migrazione da SQL Server a MariaDB](https://intosql.com/docs/migrations/sql-server-to-mariadb)

[Tipi di dati da SQL Server a MariaDB](https://intosql.com/docs/types/sql-server-to-mariadb)

## Cosa cambia da SQL Server a MariaDB

Ogni riga è una regola che il convertitore applica, con la riga del report che scrive quando la regola cambia qualcosa nei tuoi dati.

| In SQL Server | In MariaDB | Riga del report |
| --- | --- | --- |
| bit | tinyint(1) |  |
| char(n), varchar(n), nchar(n), nvarchar(n), varchar(max), text | char(n), varchar(n) fino a 1024 caratteri, tipi text oltre |  |
| decimal(p,s), money, smallmoney | decimal(p,s); money come decimal(19,4) |  |
| datetime, datetime2, smalldatetime | datetime(p) |  |
| datetime2(7), time(7) and datetimeoffset(7) | sei cifre di secondo, la settima troncata | `fraction_cut` |
| datetimeoffset | datetime(p) in UTC | `moments_as_utc` |
| time | time(p) |  |
| dates before the year 1000 | NULL | `date_out_of_range` |
| json (SQL Server 2025) | json, un longtext con un controllo JSON |  |
| uniqueidentifier | uuid |  |
| binary, varbinary, image | binary(n), varbinary(n) e tipi blob |  |
| geometry, geography | blob con i byte propri di SQL Server | `spatial_as_native` |
| rowversion, timestamp | blob, vuoto | `rowversion_empty` |
| xml, sql_variant, hierarchyid, vector | longtext | `type_replaced` |
| collations that ignore case (_CI_) | confronto esatto (utf8mb4_bin) | `case_insensitive_collation` |
| IDENTITY | AUTO_INCREMENT, che riparte dopo l'id più alto |  |
| IDENTITY columns that don't lead the primary key | un intero semplice | `counter_dropped` |
| CREATE SEQUENCE | CREATE SEQUENCE con le stesse opzioni |  |
| computed columns | colonne generate, STORED se PERSISTED, altrimenti VIRTUAL |  |
| computed columns with functions MariaDB lacks | una colonna semplice | `generated_not_translated` |
| defaults with functions MariaDB lacks, and NEXT VALUE FOR | nessun valore predefinito | `default_not_translated` |
| CHECK constraints | tradotti |  |
| CHECK constraints with functions MariaDB lacks | non creato | `check_skipped` |
| CHECK constraints added WITH NOCHECK or disabled | non creato | `check_not_enforced` |
| filtered and columnstore indexes | non creato | `index_skipped` |
| foreign keys | chiavi esterne, caricate con FOREIGN_KEY_CHECKS=0 |  |
| foreign keys to tables the dump doesn't create | non creato | `foreign_key_skipped` |
| tables on a partition scheme | una tabella con le righe di ogni partizione | `partitions_dropped` |
| temporal tables (SYSTEM_VERSIONING) | WITH SYSTEM VERSIONING, a partire dalle righe attuali; la tabella di cronologia come tabella semplice |  |
| schemas | un database, tabelle con il nome del loro schema davanti | `schemas_merged` |
| NOT NULL columns with values that become NULL | NOT NULL rimosso | `not_null_relaxed` |
| views, functions, procedures, triggers, synonyms, types and partition functions | elencati nel report | `not_converted_objects` |
| scripts without CREATE TABLE (data only) | tipi ricavati dai valori | `no_schema` |
| expressions in INSERT values | NULL | `expression_value` |
| types IntoSQL doesn't know | longtext | `unknown_type` |
| NUL characters in text | mantenuto |  |
| text that isn't valid in its encoding | i byte errati come carattere di sostituzione | `invalid_utf8_replaced` |
| text decoded twice (Ã±) | copiato così com'è | `mojibake_suspected` |

## Carica lo script in MariaDB

Lo script crea le tabelle, copia le righe, poi aggiunge chiavi, indici e chiavi esterne, così si carica in fretta e si ferma al primo errore.

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

Le chiavi esterne vengono create come le dichiara il dump, con FOREIGN_KEY_CHECKS=0 mentre le righe si caricano, come fa mysqldump.

Per un dump grande, esegui il client sulla stessa macchina del server, e aumenta max_allowed_packet se una singola riga è molto grande.

IntoSQL Pro carica il file direttamente in MariaDB dall'app desktop o dalla riga di comando, senza scrivere uno script.

## Fai il dump di SQL Server per il miglior risultato

Il convertitore legge ciò che il dump contiene. Con queste opzioni il dump conserva più dei tuoi dati:

- In SSMS, clic destro sul database, Tasks, Generate Scripts, e scegli le tabelle. dbatools, mssql-scripter e altri strumenti basati sulla stessa libreria scrivono lo stesso script.
- In Advanced, imposta Types of data to script su Schema and data. Uno script del solo schema ha tabelle senza righe.
- Salvalo come Unicode, il default di SSMS, o come UTF-8: entrambi vengono letti allo stesso modo, e funziona anche gzip.

## Cosa non viene convertito

Viste, funzioni, procedure, trigger, sinonimi, regole e policy di sicurezza sono scritti in T-SQL. Sono elencati per nome nel report, mai rimossi in silenzio, così puoi riscriverli per MariaDB.

## Domande sulla conversione da SQL Server a MariaDB

### Il mio dump viene caricato?

No. Il convertitore funziona nel tuo browser e legge il dump dal tuo disco a pezzi, quindi non lascia mai il tuo computer. Anche l'app desktop e la riga di comando convertono sul tuo computer.

### Quanto può essere grande il dump?

Il convertitore non tiene mai l'intero dump in memoria: legge il file due volte, per intervalli, e scrive lo script man mano. I dump di più gigabyte si convertono nel browser, nell'app desktop e con la riga di comando.

### Legge il file UTF-16 che salva SSMS?

Sì. SSMS salva gli script in UTF-16 di default, e il convertitore legge allo stesso modo UTF-16 e UTF-8, compressi con gzip o no, con GO tra i batch.

### Da quali versioni di SQL Server può provenire lo script?

Script scritti da SSMS, dbatools o mssql-scripter da SQL Server 2017 in poi. Ogni script di test viene da SQL Server 2017, 2022 e 2025 ed è confrontato con la sorgente cella per cella.

### I valori IDENTITY vengono mantenuti?

Sì, per una colonna per tabella: la colonna IDENTITY all'inizio della chiave primaria diventa AUTO_INCREMENT e riparte dopo l'id più alto. Le sequenze diventano sequenze di MariaDB con le stesse opzioni.

### Cosa succede a money, datetimeoffset e altri tipi di SQL Server?

bit diventa tinyint(1), money decimal(19,4), uniqueidentifier UUID e datetimeoffset datetime in UTC. Le tabelle temporali mantengono il system versioning. Le colonne che ignoravano le maiuscole confrontano in modo esatto, e il report dice quali.

### E procedure, trigger e viste?

Sono elencati per nome nel report e non vengono convertiti, perché ogni database li scrive nel proprio linguaggio.

### Su quali versioni di MariaDB si carica lo script?

MariaDB 10.11 e successive. Ogni script di test si carica su 10.11 e 11.4, fermandosi al primo errore se qualcosa va storto.

## Da SQL Server

- [Da SQL Server a PostgreSQL](https://intosql.com/it/sql-server-in-postgresql)
- [Da SQL Server a MySQL](https://intosql.com/it/sql-server-in-mysql)
- [Da SQL Server a SQLite](https://intosql.com/it/sql-server-in-sqlite)
- [Da SQL Server a SQL Server](https://intosql.com/it/sql-server-in-sql-server)
- [Da SQL Server a Oracle](https://intosql.com/it/sql-server-in-oracle)

## Verso MariaDB

- [Da MySQL a MariaDB](https://intosql.com/it/mysql-in-mariadb)
- [Da MariaDB a MariaDB](https://intosql.com/it/mariadb-in-mariadb)
- [Da PostgreSQL a MariaDB](https://intosql.com/it/postgresql-in-mariadb)
- [Da SQLite a MariaDB](https://intosql.com/it/sqlite-in-mariadb)
- [Da Oracle a MariaDB](https://intosql.com/it/oracle-in-mariadb)

## Guida e tutte le coppie

- [Da MariaDB a SQL Server](https://intosql.com/it/mariadb-in-sql-server)
- [Guida alla migrazione da SQL Server a MariaDB](https://intosql.com/docs/migrations/sql-server-to-mariadb)
- [Tipi di dati da SQL Server a MariaDB](https://intosql.com/docs/types/sql-server-to-mariadb)
- [Tutte le coppie di database](https://intosql.com/it/migrazione-database)
