---
title: "Pindahkan skrip SQL Server ke versi lain"
description: "Konversi skrip SSMS dari SQL Server 2017 atau yang lebih baru menjadi skrip yang dimuat di SQL Server 2017 sampai 2025, dengan tabel, kunci, dan data yang sama."
canonical: https://intosql.com/id/sql-server-ke-sql-server
last_updated: 2026-10-15
---

# Pindahkan skrip SQL Server ke versi lain

Letakkan skrip yang ditulis Generate Scripts di SSMS dengan schema dan data, sebagai .sql atau .sql.gz, UTF-16 atau UTF-8, lalu unduh skrip yang dimuat di SQL Server 2017 sampai 2025, versi mana pun yang menulisnya. Identity, collation, dan tipe seperti xml dan hierarchyid tetap apa adanya, dan setiap perubahan dicantumkan di laporan.

[Panduan migrasi SQL Server ke SQL Server](https://intosql.com/docs/migrations/sql-server-to-sql-server)

[Tipe data SQL Server ke SQL Server](https://intosql.com/docs/types/sql-server-to-sql-server)

## Apa yang berubah antara file dan skrip

Setiap baris adalah aturan yang diterapkan konverter, beserta baris laporan yang ditulisnya saat aturan itu mengubah sesuatu di data Anda.

| Di file | Di skrip | Baris laporan |
| --- | --- | --- |
| bit | bit |  |
| char(n), varchar(n), nchar(n), nvarchar(n), varchar(max), text, ntext | nchar(n), nvarchar(n), dan nvarchar(max), dengan collation setiap kolom |  |
| column collations | collation yang sama di setiap kolom |  |
| decimal(p,s), money, smallmoney | decimal(p,s); money sebagai decimal(19,4) |  |
| datetime, datetime2, smalldatetime | datetime2(p) |  |
| datetimeoffset | datetimeoffset, dengan offset setiap nilai |  |
| 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), dan varbinary(max) |  |
| xml, sql_variant, hierarchyid, geometry, geography | tipe yang sama |  |
| rowversion, timestamp | binary(8), kosong | `rowversion_empty` |
| IDENTITY | IDENTITY, berlanjut setelah id tertinggi |  |
| CREATE SEQUENCE | CREATE SEQUENCE dengan opsi yang sama |  |
| computed columns | kolom terhitung yang sama, PERSISTED seperti di sumber |  |
| computed columns with functions IntoSQL doesn't write | kolom biasa | `generated_not_translated` |
| defaults with functions IntoSQL doesn't write, and NEXT VALUE FOR | tanpa default | `default_not_translated` |
| CHECK constraints | diterjemahkan |  |
| CHECK constraints with functions IntoSQL doesn't write | tidak dibuat | `check_skipped` |
| CHECK constraints added WITH NOCHECK or disabled | tidak dibuat | `check_not_enforced` |
| filtered and columnstore indexes | tidak dibuat | `index_skipped` |
| foreign keys | setelah data WITH NOCHECK, lalu diperiksa dengan peringatan untuk baris yatim |  |
| 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 | tidak dibuat | `foreign_key_skipped` |
| tables on a partition scheme | satu tabel dengan baris dari setiap partisi | `partitions_dropped` |
| temporal tables (SYSTEM_VERSIONING) | dua tabel: baris saat ini dan riwayatnya | `system_versioning_dropped` |
| NOT NULL columns with values that become NULL | NOT NULL dihapus | `not_null_relaxed` |
| views, functions, procedures, triggers, synonyms, types and partition functions | dicantumkan di laporan | `not_converted_objects` |
| scripts without CREATE TABLE (data only) | tipe dibaca dari nilai | `no_schema` |
| expressions in INSERT values | NULL | `expression_value` |
| types IntoSQL doesn't know | nvarchar(max) | `unknown_type` |
| NUL characters in text | dipertahankan |  |
| text that isn't valid in its encoding | byte yang rusak menjadi karakter pengganti | `invalid_utf8_replaced` |
| text decoded twice (Ã±) | disalin apa adanya | `mojibake_suspected` |

## Muat skrip ke SQL Server

Skrip membuat tabel, menyalin baris, lalu menambahkan kunci, indeks, dan foreign key, jadi pemuatan berjalan cepat dan berhenti di galat pertama.

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

Foreign key ditambahkan WITH NOCHECK lalu diperiksa. Jika sebuah baris merujuk ke baris yang tidak ada, skrip menyebutkan constraint mana dan membiarkannya tidak diperiksa, bukan gagal di tengah jalan.

Untuk dump yang besar, jalankan sqlcmd di mesin yang sama dengan server. Setiap batch berisi maksimal 1000 baris di-commit sendiri, jadi log transaksi tetap kecil.

## Buat dump SQL Server untuk hasil terbaik

Konverter membaca apa yang ada di dump. Opsi berikut membuat lebih banyak data Anda tetap ada di dalamnya:

- Di SSMS, klik kanan database, Tasks, Generate Scripts, lalu pilih tabelnya. dbatools, mssql-scripter, dan alat lain yang dibangun di atas library yang sama menulis skrip yang sama.
- Di Advanced, atur Types of data to script ke Schema and data. Skrip yang hanya berisi schema punya tabel tanpa baris.
- Simpan sebagai Unicode, default SSMS, atau sebagai UTF-8: keduanya dibaca dengan cara yang sama, dan gzip juga bisa.

## Yang tidak dikonversi

View, trigger, procedure, fungsi, dan objek lain yang ditulis dalam bahasa SQL Server sendiri dicantumkan di laporan berdasarkan nama, tidak pernah dibuang diam-diam, jadi Anda bisa memeriksa masing-masing dengan versi SQL Server tujuan pemuatan sebelum membuatnya ulang.

## Pertanyaan tentang memindahkan SQL Server antarversi

### Apakah dump saya diunggah?

Tidak. Konverter berjalan di browser Anda dan membaca dump dari disk Anda sepotong demi sepotong, jadi dump tidak pernah meninggalkan komputer Anda. Aplikasi desktop dan command line juga mengonversi di komputer Anda.

### Seberapa besar dump yang bisa dipakai?

Konverter tidak pernah menyimpan seluruh dump di memori: file dibaca dua kali, per rentang, dan skrip ditulis sambil berjalan. Dump berukuran beberapa gigabyte bisa dikonversi di browser, di aplikasi desktop, dan dengan command line.

### Apakah file UTF-16 yang disimpan SSMS bisa dibaca?

Ya. SSMS menyimpan skrip sebagai UTF-16 secara default, dan konverter membaca UTF-16 dan UTF-8 sama baiknya, di-gzip atau tidak, dengan GO di antara batch.

### Skrip dari versi SQL Server mana yang bisa dipakai?

Skrip yang ditulis SSMS, dbatools, atau mssql-scripter dari SQL Server 2017 ke atas. Setiap skrip uji berasal dari SQL Server 2017, 2022, dan 2025 dan dibandingkan dengan sumbernya sel demi sel.

### Apakah nilai IDENTITY dipertahankan?

Ya. Kolom IDENTITY dimuat dengan IDENTITY_INSERT, setiap baris mempertahankan id-nya, dan penghitung berlanjut setelah id tertinggi. Sequence dibuat dengan opsi yang sama.

### Apa yang terjadi pada money, datetimeoffset, dan tipe SQL Server lainnya?

Tetap apa adanya: termasuk xml, sql_variant, hierarchyid, geometry, dan geography, dan setiap kolom teks mempertahankan collation-nya. Nilai datetimeoffset mempertahankan offset-nya. Kolom rowversion menjadi binary(8), karena skrip tidak berisi nilainya.

### Bagaimana dengan prosedur, trigger, dan view?

Semuanya dicantumkan di laporan berdasarkan nama dan tidak dikonversi, jadi Anda bisa menjalankan bagiannya dari skrip asli setelah tabel masuk.

### Di versi SQL Server mana skrip bisa dimuat?

SQL Server 2017 sampai 2025, versi mana pun yang menulis skrip. Skrip yang sama dimuat di setiap versi itu, dan berhenti di galat pertama jika ada yang salah.

## Dari SQL Server

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

## Ke SQL Server

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

## Panduan dan setiap pasangan

- [Panduan migrasi SQL Server ke SQL Server](https://intosql.com/docs/migrations/sql-server-to-sql-server)
- [Tipe data SQL Server ke SQL Server](https://intosql.com/docs/types/sql-server-to-sql-server)
- [Setiap pasangan database](https://intosql.com/id/migrasi-database)
