---
title: "Een SQL Server-script naar een andere versie"
description: "Zet een SSMS-script van SQL Server 2017 of later om naar een script dat laadt op SQL Server 2017 tot en met 2025, met dezelfde tabellen, sleutels en data, en een rapport."
canonical: https://intosql.com/nl/sql-server-naar-sql-server
last_updated: 2026-10-15
---

# Een SQL Server-script naar een andere versie

Sleep het script dat Generate Scripts van SSMS schrijft met schema en data, als .sql of .sql.gz, in UTF-16 of UTF-8, hierheen en download er een dat laadt op SQL Server 2017 tot en met 2025, welke versie het ook schreef. Identities, collaties en typen zoals xml en hierarchyid blijven zoals ze zijn, en elke wijziging staat in het rapport.

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

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

## Wat er verandert tussen het bestand en het script

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

| In het bestand | In het script | Rapportregel |
| --- | --- | --- |
| bit | bit |  |
| char(n), varchar(n), nchar(n), nvarchar(n), varchar(max), text, ntext | nchar(n), nvarchar(n) en nvarchar(max), met de collation van elke kolom |  |
| column collations | dezelfde collation op elke kolom |  |
| decimal(p,s), money, smallmoney | decimal(p,s); money als decimal(19,4) |  |
| datetime, datetime2, smalldatetime | datetime2(p) |  |
| datetimeoffset | datetimeoffset, met de offset van elke waarde |  |
| time | time(p) |  |
| dates that aren't valid | NULL | `date_out_of_range` |
| json (SQL Server 2025) | nvarchar(max) |  |
| uniqueidentifier | uniqueidentifier |  |
| binary, varbinary, image | binary(n), varbinary(n) en varbinary(max) |  |
| xml, sql_variant, hierarchyid, geometry, geography | dezelfde typen |  |
| rowversion, timestamp | binary(8), leeg | `rowversion_empty` |
| IDENTITY | IDENTITY, verdergaand na het hoogste id |  |
| CREATE SEQUENCE | CREATE SEQUENCE met dezelfde opties |  |
| computed columns | dezelfde berekende kolommen, PERSISTED zoals in de bron |  |
| computed columns with functions IntoSQL doesn't write | een gewone kolom | `generated_not_translated` |
| defaults with functions IntoSQL doesn't write, and NEXT VALUE FOR | geen standaardwaarde | `default_not_translated` |
| CHECK constraints | vertaald |  |
| CHECK constraints with functions IntoSQL doesn't write | 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 | na de data WITH NOCHECK, daarna gecontroleerd met een waarschuwing bij wezen |  |
| ON DELETE or ON UPDATE that cascades in a cycle or along a second path | NO ACTION | `foreign_key_action_dropped` |
| 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` |
| 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 | nvarchar(max) | `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 SQL Server 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
sqlcmd -b -f 65001 -S localhost -d mydb -i sql_server.sql_server.sql
```

Refererende sleutels worden toegevoegd met WITH NOCHECK en daarna gecontroleerd. Verwijst een rij naar een rij die niet bestaat, dan vertelt het script welke constraint het is en laat het die ongecontroleerd, in plaats van halverwege te mislukken.

Voer bij een grote dump sqlcmd uit op dezelfde machine als de server. Elke batch van maximaal 1000 rijen wordt apart gecommit, zodat het transactielogboek klein blijft.

## 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, triggers, procedures, functies en andere objecten in de eigen taal van SQL Server staan op naam in het rapport en worden nooit stilletjes weggelaten, zodat je elk ervan kunt controleren tegen de SQL Server-versie waarin je laadt voordat je het opnieuw aanmaakt.

## Vragen over SQL Server verhuizen tussen versies

### 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?

Ja. IDENTITY-kolommen laden met IDENTITY_INSERT, elke rij behoudt zijn id en de teller gaat verder na het hoogste. Sequences worden aangemaakt met dezelfde opties.

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

Ze blijven zoals ze zijn, xml, sql_variant, hierarchyid, geometry en geography inbegrepen, en elke tekstkolom behoudt zijn collation. datetimeoffset-waarden behouden hun offsets. rowversion-kolommen worden binary(8), omdat het script er geen waarden voor heeft.

### En procedures, triggers en weergaven?

Ze staan op naam in het rapport en worden niet geconverteerd, zodat je hun deel van het oorspronkelijke script kunt uitvoeren zodra de tabellen er zijn.

### Op welke SQL Server-versies laadt het script?

SQL Server 2017 tot en met 2025, welke versie het script ook schreef. Hetzelfde script laadt op elk ervan 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 SQLite](https://intosql.com/nl/sql-server-naar-sqlite)
- [SQL Server naar Oracle](https://intosql.com/nl/sql-server-naar-oracle)

## Naar SQL Server

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

## Handleiding en elke combinatie

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