---
title: "SQL Server - PostgreSQL taşıma, tarayıcınızda"
description: "Bir SQL Server veritabanını PostgreSQL hedefine taşıyın: SSMS'in ürettiği betiği aynı tablolar, anahtarlar ve verilerle bir betiğe dönüştürün, raporuyla birlikte."
canonical: https://intosql.com/tr/sql-server-postgresql-donusturme
last_updated: 2026-10-15
---

# SQL Server - PostgreSQL taşıma, tarayıcınızda

SSMS'in Generate Scripts aracının şema ve veriyle yazdığı betiği .sql veya .sql.gz, UTF-16 veya UTF-8 olarak bırakın ve aynı tablolar, anahtarlar, indeksler ve verilerle bir PostgreSQL betiği indirin. PostgreSQL'in olduğu gibi tutamadığı her değer ve taşımadığı her nesne raporda listelenir.

[SQL Server - PostgreSQL taşıma kılavuzu](https://intosql.com/docs/migrations/sql-server-to-postgresql)

[SQL Server - PostgreSQL veri türleri](https://intosql.com/docs/types/sql-server-to-postgresql)

## SQL Server ile PostgreSQL arasında neler değişir

Her satır, dönüştürücünün uyguladığı bir kuraldır; yanında, kural verilerinizde bir şeyi değiştirdiğinde yazılan rapor satırı yer alır.

| SQL Server içinde | PostgreSQL içinde | Rapor satırı |
| --- | --- | --- |
| bit | boolean |  |
| tinyint | negatif olmadığını denetleyen bir CHECK ile smallint | `unsigned_widened` |
| char(n), varchar(n), nchar(n), nvarchar(n), varchar(max), text | varchar(n) ve text |  |
| decimal(p,s), money, smallmoney | numeric(p,s); money numeric(19,4) olarak |  |
| datetime, datetime2, smalldatetime | timestamp(p) |  |
| datetime2(7), time(7) and datetimeoffset(7) | saniyenin altı basamağı, yedincisi kesilir | `fraction_cut` |
| datetimeoffset | timestamptz, aynı anlar |  |
| time | time(p) |  |
| json (SQL Server 2025) | jsonb |  |
| uniqueidentifier | uuid |  |
| binary, varbinary, image | bytea |  |
| geometry, geography | SQL Server'ın kendi baytlarıyla bytea | `spatial_as_native` |
| rowversion, timestamp | bytea, boş | `rowversion_empty` |
| sql_variant, hierarchyid, vector | text | `type_replaced` |
| collations that ignore case (_CI_) | tam karşılaştırma | `case_insensitive_collation` |
| IDENTITY | en yüksek id'den sonra devam eden GENERATED BY DEFAULT AS IDENTITY |  |
| CREATE SEQUENCE | aynı seçeneklerle CREATE SEQUENCE |  |
| computed columns | üretilen sütunlar, STORED | `virtual_as_stored` |
| computed columns with functions PostgreSQL lacks | düz bir sütun | `generated_not_translated` |
| defaults with functions PostgreSQL lacks, and NEXT VALUE FOR | varsayılan değer yok | `default_not_translated` |
| CHECK constraints | çevrilir |  |
| CHECK constraints with functions PostgreSQL lacks | oluşturulmaz | `check_skipped` |
| CHECK constraints added WITH NOCHECK or disabled | oluşturulmaz | `check_not_enforced` |
| filtered and columnstore indexes | oluşturulmaz | `index_skipped` |
| foreign keys | satırlardan sonra yabancı anahtarlar |  |
| foreign keys to tables the dump doesn't create | oluşturulmaz | `foreign_key_skipped` |
| tables on a partition scheme | her bölümün satırlarını içeren tek tablo | `partitions_dropped` |
| temporal tables (SYSTEM_VERSIONING) | iki tablo: mevcut satırlar ve geçmiş | `system_versioning_dropped` |
| NOT NULL columns with values that become NULL | NOT NULL kaldırılır | `not_null_relaxed` |
| views, functions, procedures, triggers, synonyms, types and partition functions | raporda listelenir | `not_converted_objects` |
| scripts without CREATE TABLE (data only) | değerlerden okunan türler | `no_schema` |
| expressions in INSERT values | NULL | `expression_value` |
| types IntoSQL doesn't know | text | `unknown_type` |
| dates that aren't valid | NULL | `date_out_of_range` |
| NUL characters in text | kaldırılır | `nul_removed` |
| text that isn't valid in its encoding | hatalı baytlar yerine koyma karakteri olarak | `invalid_utf8_replaced` |
| text decoded twice (Ã±) | olduğu gibi kopyalanır | `mojibake_suspected` |

## Betiği PostgreSQL veritabanına yükleyin

Betik tabloları oluşturur, satırları kopyalar, ardından anahtarları, indeksleri ve yabancı anahtarları ekler; böylece hızlı yüklenir ve ilk hatada durur.

```shell
psql -v ON_ERROR_STOP=1 -d mydb -f sql_server.postgresql.sql
```

Yabancı anahtarlar NOT VALID olarak eklenir ve ardından doğrulanır. Bir satır var olmayan bir satıra işaret ediyorsa betik, yarı yolda başarısız olmak yerine hangi kısıtın sorunlu olduğunu söyler.

Büyük bir döküm için önce veritabanını oluşturun ve betiği sunucuyla aynı makinede psql ile çalıştırın.

IntoSQL Pro, dosyayı masaüstü uygulamasından veya komut satırından doğrudan PostgreSQL veritabanına yükler; betik yazmanız gerekmez.

## En iyi sonuç için SQL Server dökümü nasıl alınır

Dönüştürücü, dökümün içerdiğini okur. Bu seçenekler verilerinizin daha fazlasını dökümde tutar:

- SSMS'te veritabanına sağ tıklayın, Tasks, Generate Scripts'i seçin ve tabloları işaretleyin. dbatools, mssql-scripter ve aynı kitaplık üzerine kurulu diğer araçlar aynı betiği yazar.
- Advanced altında Types of data to script ayarını Schema and data yapın. Yalnızca şemayı içeren bir betikte tablolar satırsızdır.
- Betiği SSMS'in varsayılanı olan Unicode ya da UTF-8 olarak kaydedin: ikisi de aynı şekilde okunur, gzip de çalışır.

## Neler dönüştürülmez

Görünümler, fonksiyonlar, saklı yordamlar, tetikleyiciler, eş anlamlılar, kurallar ve güvenlik ilkeleri T-SQL ile yazılır. Raporda adlarıyla listelenirler, asla sessizce atlanmazlar; böylece onları PostgreSQL için yeniden yazabilirsiniz.

## SQL Server - PostgreSQL dönüştürme hakkında sorular

### Dökümüm yükleniyor mu?

Hayır. Dönüştürücü tarayıcınızda çalışır ve dökümü diskinizden parça parça okur; böylece döküm bilgisayarınızdan hiç çıkmaz. Masaüstü uygulaması ve komut satırı da bilgisayarınızda dönüştürür.

### Döküm ne kadar büyük olabilir?

Dönüştürücü dökümün tamamını asla bellekte tutmaz: dosyayı aralıklar halinde iki kez okur ve betiği ilerledikçe yazar. Birkaç gigabaytlık dökümler tarayıcıda, masaüstü uygulamasında ve komut satırıyla dönüştürülür.

### SSMS'in kaydettiği UTF-16 dosyasını okuyor mu?

Evet. SSMS betikleri varsayılan olarak UTF-16 kaydeder ve dönüştürücü, gzip'li olsun olmasın, toplu işler arasında GO bulunan UTF-16 ve UTF-8 dosyalarını aynı şekilde okur.

### Betik hangi SQL Server sürümlerinden gelebilir?

SSMS, dbatools veya mssql-scripter ile SQL Server 2017 ve sonrasından yazılmış betikler. Her test betiği SQL Server 2017, 2022 ve 2025'ten gelir ve kaynağıyla hücre hücre karşılaştırılır.

### IDENTITY değerleri korunuyor mu?

Evet. IDENTITY sütunları kimlik sütunu olur, her satır kendi id'sini korur ve sonraki id en yüksek id'den sonra devam eder. Sequence'lar aynı seçeneklerle oluşturulur.

### money, datetimeoffset ve diğer SQL Server türleri ne olur?

bit boolean, money numeric(19,4), uniqueidentifier uuid, xml xml, datetimeoffset ise timestamptz olur. datetime2 saniyenin altı basamağını korur, yedincisi kesilir. Büyük/küçük harfi yok sayan sütunlar tam karşılaştırır ve rapor hangileri olduğunu söyler.

### Saklı yordamlar, tetikleyiciler ve görünümler ne olur?

Raporda adlarıyla listelenirler ve dönüştürülmezler, çünkü her veritabanı onları kendi dilinde yazar.

### Betik hangi PostgreSQL sürümlerinde yüklenir?

PostgreSQL 13 ile 18 arası. Aynı betik her birinde yüklenir ve bir sorun çıkarsa ilk hatada durur.

## Kaynak: SQL Server

- [SQL Server - MySQL](https://intosql.com/tr/sql-server-mysql-donusturme)
- [SQL Server - MariaDB](https://intosql.com/tr/sql-server-mariadb-donusturme)
- [SQL Server - SQLite](https://intosql.com/tr/sql-server-sqlite-donusturme)
- [SQL Server - SQL Server](https://intosql.com/tr/sql-server-sql-server-donusturme)
- [SQL Server - Oracle](https://intosql.com/tr/sql-server-oracle-donusturme)

## Hedef: PostgreSQL

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

## Kılavuz ve tüm ikililer

- [PostgreSQL - SQL Server](https://intosql.com/tr/postgresql-sql-server-donusturme)
- [SQL Server - PostgreSQL taşıma kılavuzu](https://intosql.com/docs/migrations/sql-server-to-postgresql)
- [SQL Server - PostgreSQL veri türleri](https://intosql.com/docs/types/sql-server-to-postgresql)
- [Tüm veritabanı ikilileri](https://intosql.com/tr/veritabani-tasima)
