---
title: "SQL Server naar SQLite migreren in je browser"
description: "Migreer een SQL Server-database naar SQLite: zet het script van SSMS om naar een script met dezelfde tabellen, sleutels en data, en een rapport van elke wijziging."
canonical: https://intosql.com/nl/sql-server-naar-sqlite
last_updated: 2026-10-15
---

# SQL Server naar SQLite migreren in je browser

Zet het script neer dat Generate Scripts van SSMS met schema en data schrijft, als .sql of .sql.gz, UTF-16 of UTF-8, en download een SQLite-script met dezelfde tabellen, sleutels, indexen en data. Elke waarde die SQLite niet ongewijzigd kan bevatten, en elk object dat het niet overneemt, staat in het rapport.

[Migratiehandleiding SQL Server naar SQLite](https://intosql.com/docs/migrations/sql-server-to-sqlite)

[Datatypen van SQL Server naar SQLite](https://intosql.com/docs/types/sql-server-to-sqlite)

## Wat er verandert van SQL Server naar SQLite

Elke rij is een regel die de converter toepast, met de rapportregel die hij schrijft als de regel iets in je data verandert.

| In SQL Server | In SQLite | Rapportregel |
| --- | --- | --- |
| bit | INTEGER 0 of 1 met een CHECK |  |
| tinyint | INTEGER met een CHECK dat het niet negatief is | `unsigned_widened` |
| char(n), varchar(n), nchar(n), nvarchar(n), varchar(max), text | VARCHAR(n) en TEXT, niet afgedwongen |  |
| decimal(p,s) past 15 digits, money | TEXT | `decimal_as_text` |
| date, datetime, datetime2, smalldatetime | DATETIME als ISO 8601-tekst, elk cijfer behouden |  |
| datetimeoffset | TIMESTAMP als ISO 8601-tekst in UTC | `moments_as_utc` |
| time | TIME als tekst |  |
| dates that aren't valid | NULL | `date_out_of_range` |
| json (SQL Server 2025) | TEXT |  |
| uniqueidentifier | TEXT |  |
| binary, varbinary, image | BLOB |  |
| geometry, geography | BLOB met de eigen bytes van SQL Server | `spatial_as_native` |
| rowversion, timestamp | BLOB, leeg | `rowversion_empty` |
| xml, sql_variant, hierarchyid, vector | TEXT | `type_replaced` |
| collations that ignore case (_CI_) | exacte vergelijking | `case_insensitive_collation` |
| IDENTITY | INTEGER PRIMARY KEY AUTOINCREMENT, verdergaand na het hoogste id |  |
| IDENTITY columns that aren't the whole primary key | INTEGER zonder teller | `counter_dropped` |
| CREATE SEQUENCE | niet aangemaakt | `sequence_not_converted` |
| computed columns | GENERATED ALWAYS AS, STORED bij PERSISTED, anders VIRTUAL |  |
| computed columns with functions SQLite lacks | een gewone kolom | `generated_not_translated` |
| defaults with functions SQLite lacks, and NEXT VALUE FOR | geen standaardwaarde | `default_not_translated` |
| CHECK constraints | vertaald |  |
| CHECK constraints with functions SQLite lacks | niet aangemaakt | `check_skipped` |
| CHECK constraints added WITH NOCHECK or disabled | niet aangemaakt | `check_not_enforced` |
| filtered and columnstore indexes | niet aangemaakt | `index_skipped` |
| foreign keys | in CREATE TABLE, ongecontroleerd geladen, daarna opgesomd door PRAGMA foreign_key_check |  |
| foreign keys to tables the dump doesn't create | niet aangemaakt | `foreign_key_skipped` |
| tables on a partition scheme | één tabel met de rijen van elke partitie | `partitions_dropped` |
| temporal tables (SYSTEM_VERSIONING) | twee tabellen: de huidige rijen en de geschiedenis | `system_versioning_dropped` |
| schemas | één bestand, tabellen met de naam van hun schema ervoor | `schemas_merged` |
| NOT NULL columns with values that become NULL | NOT NULL weggelaten | `not_null_relaxed` |
| views, functions, procedures, triggers, synonyms, types and partition functions | vermeld in het rapport | `not_converted_objects` |
| scripts without CREATE TABLE (data only) | typen afgeleid uit de waarden | `no_schema` |
| expressions in INSERT values | NULL | `expression_value` |
| types IntoSQL doesn't know | TEXT | `unknown_type` |
| NUL characters in text | behouden |  |
| text that isn't valid in its encoding | de foute bytes als het vervangingsteken | `invalid_utf8_replaced` |
| text decoded twice (Ã±) | ongewijzigd gekopieerd | `mojibake_suspected` |

## Het script in SQLite laden

Het script maakt de tabellen aan, kopieert de rijen en voegt daarna sleutels, indexen en refererende sleutels toe, zodat het snel laadt en bij de eerste fout stopt.

```shell
sqlite3 -bail mydb.sqlite < sql_server.sqlite.sql
```

Refererende sleutels worden in elke tabel gedeclareerd en de rijen laden met de controle op refererende sleutels uit. Daarna somt het script elke rij op die naar een niet-bestaande rij verwijst, in plaats van halverwege te mislukken.

Laad een grote dump in een nieuw bestand op een lokale schijf. Het script laadt alles in één transactie met synchronisatie uit, dus het draait op schijfsnelheid, en een laadactie die halverwege stopt, laat geen halve tabellen achter.

De opdrachtregel laadt het bestand rechtstreeks in een SQLite-database, zonder een script te schrijven. Dat is gratis.

## Een dump van SQL Server maken voor het beste resultaat

De converter leest wat de dump bevat. Met deze opties blijft er meer van je data in staan:

- Klik in SSMS met rechts op de database, kies Tasks, Generate Scripts en selecteer de tabellen. dbatools, mssql-scripter en andere tools op basis van dezelfde bibliotheek schrijven hetzelfde script.
- Zet onder Advanced Types of data to script op Schema and data. Een script van alleen het schema bevat tabellen zonder rijen.
- Sla het op als Unicode, de standaard van SSMS, of als UTF-8: beide worden op dezelfde manier gelezen, en gzip werkt ook.

## Wat niet wordt geconverteerd

Weergaven, functies, procedures, triggers, synoniemen, regels en beveiligingsbeleid zijn geschreven in T-SQL. Ze staan op naam in het rapport en worden nooit stilletjes weggelaten, zodat je ze kunt herschrijven voor SQLite.

## Vragen over SQL Server naar SQLite

### Wordt mijn dump geüpload?

Nee. De converter draait in je browser en leest de dump in delen van je schijf, dus hij verlaat je computer nooit. De desktopapp en de opdrachtregel converteren ook op je computer.

### Hoe groot mag de dump zijn?

De converter houdt nooit de hele dump in het geheugen: hij leest het bestand twee keer, in bereiken, en schrijft het script gaandeweg. Dumps van meerdere gigabytes worden geconverteerd in de browser, in de desktopapp en met de opdrachtregel.

### Leest het het UTF-16-bestand dat SSMS opslaat?

Ja. SSMS slaat scripts standaard op als UTF-16, en de converter leest UTF-16 en UTF-8 even goed, met of zonder gzip, met GO tussen batches.

### Van welke SQL Server-versies kan het script komen?

Scripts die SSMS, dbatools of mssql-scripter schrijven vanaf SQL Server 2017. Elk testscript komt van SQL Server 2017, 2022 en 2025 en wordt cel voor cel met zijn bron vergeleken.

### Blijven IDENTITY-waarden behouden?

Een IDENTITY-kolom die de hele primaire sleutel van de tabel is, wordt INTEGER PRIMARY KEY AUTOINCREMENT, elke rij behoudt zijn id en het volgende id gaat verder na het hoogste. Elke andere behoudt zijn waarden zonder teller.

### Wat gebeurt er met money, datetimeoffset en andere SQL Server-typen?

bit wordt 0 en 1, datetime2 ISO 8601-tekst met elk cijfer, datetimeoffset UTC-tekst, en brede decimals en money exacte tekst. Berekende kolommen blijven berekend. Schema's worden voorvoegsels van tabelnamen.

### En procedures, triggers en weergaven?

Ze staan op naam in het rapport en worden niet geconverteerd, omdat elke database ze in een eigen taal schrijft.

### Op welke SQLite-versies laadt het script?

SQLite 3.31 en later. Elk testscript laadt op 3.31 en 3.54 en stopt bij de eerste fout als er iets misgaat.

## Vanuit SQL Server

- [SQL Server naar PostgreSQL](https://intosql.com/nl/sql-server-naar-postgresql)
- [SQL Server naar MySQL](https://intosql.com/nl/sql-server-naar-mysql)
- [SQL Server naar MariaDB](https://intosql.com/nl/sql-server-naar-mariadb)
- [SQL Server naar SQL Server](https://intosql.com/nl/sql-server-naar-sql-server)
- [SQL Server naar Oracle](https://intosql.com/nl/sql-server-naar-oracle)

## Naar SQLite

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

## Handleiding en elke combinatie

- [SQLite naar SQL Server](https://intosql.com/nl/sqlite-naar-sql-server)
- [Migratiehandleiding SQL Server naar SQLite](https://intosql.com/docs/migrations/sql-server-to-sqlite)
- [Datatypen van SQL Server naar SQLite](https://intosql.com/docs/types/sql-server-to-sqlite)
- [Elke databasecombinatie](https://intosql.com/nl/databasemigratie)
