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

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

pg_dump veya pg_dumpall ile alınmış düz bir dökümü .sql veya .sql.gz olarak bırakın ve aynı tablolar, anahtarlar, indeksler ve verilerle bir SQL Server betiği indirin. SQL Server'in olduğu gibi tutamadığı her değer ve taşımadığı her nesne raporda listelenir.

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

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

## PostgreSQL ile SQL Server 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.

| PostgreSQL içinde | SQL Server içinde | Rapor satırı |
| --- | --- | --- |
| boolean | bit |  |
| varchar(n), char(n), text | nvarchar(n); text nvarchar(max) olarak, bir anahtar kullanıyorsa ve her değer sığıyorsa nvarchar(450) |  |
| text comparison | tam (Latin1_General_100_BIN2); citext büyük/küçük harfi yok sayar (Latin1_General_100_CI_AS_SC) |  |
| numeric(p,s) past 38 digits; numeric without a precision | nvarchar; değerler 38 basamağa sığıyorsa onlara uyan decimal(p,s) | `decimal_as_text` |
| money | decimal(19,2) | `type_replaced` |
| interval | PostgreSQL'in metniyle nvarchar(100) | `type_replaced` |
| arrays (integer[], text[]...) | JSON dizisiyle nvarchar(max) | `type_replaced` |
| ranges, geometric types, tsvector, xml, hstore, PostGIS, composite and extension types | PostgreSQL'in metniyle nvarchar(max) | `type_replaced` |
| json, jsonb | nvarchar(max) |  |
| timestamp | datetime2 |  |
| timestamp with time zone | UTC'de datetimeoffset |  |
| time with 24:00:00 in it | nvarchar(17) | `time_as_interval` |
| infinity, -infinity and BC dates | NULL | `date_out_of_range` |
| NaN and Infinity in numeric, real and double precision | NULL | `invalid_value_null` |
| NOT NULL columns with values that become NULL | NOT NULL kaldırılır | `not_null_relaxed` |
| enum types | etiketlerini denetleyen bir CHECK ile nvarchar |  |
| enum columns holding values outside their labels | CHECK olmadan nvarchar | `enum_check_skipped` |
| uuid, inet, cidr, macaddr | uniqueidentifier; adresler nvarchar olarak |  |
| bytea | varbinary(max) |  |
| bit(n), bit varying | tek bit için bit; 63 bite kadar bigint; ötesi metin basamakları |  |
| oid, xid, cid | negatif olmadığını denetleyen bir CHECK ile bigint |  |
| serial, identity | en yüksek id'den sonra devam eden IDENTITY |  |
| a second serial or identity column in a table | düz bir tam sayı | `counter_dropped` |
| sequences not owned by a column | sonraki değeriyle CREATE SEQUENCE ... AS bigint |  |
| generated columns | hesaplanan sütunlar, kaynak onları saklıyorsa PERSISTED |  |
| generated columns with functions SQL Server lacks | değerleriyle düz bir sütun | `generated_not_translated` |
| defaults with functions SQL Server lacks, and defaults from a sequence | varsayılan değer yok | `default_not_translated` |
| CHECK constraints | çevrilir, CREATE TABLE içinde satır içi |  |
| CHECK constraints with functions SQL Server lacks | oluşturulmaz | `check_skipped` |
| CHECK ... NOT VALID | oluşturulmaz | `check_not_valid` |
| gin, gist, brin and hash indexes, partial and expression indexes, and indexes on text that doesn't fit a key | oluşturulmaz | `index_skipped` |
| foreign keys | veriden sonra WITH NOCHECK, ardından yetim satırlar için uyarıyla denetlenir |  |
| 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 | oluşturulmaz | `foreign_key_skipped` |
| partitioned tables | her bölümün satırlarını içeren tek tablo | `partitions_dropped` |
| views, functions, procedures, triggers, rules, policies, extensions and types | raporda listelenir | `not_converted_objects` |
| dumps without CREATE TABLE (--data-only) | değerlerden okunan türler | `no_schema` |
| expressions in INSERT values | NULL | `expression_value` |
| types IntoSQL doesn't know | nvarchar(max) | `unknown_type` |
| 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 SQL Server 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
sqlcmd -b -f 65001 -S localhost -d mydb -i postgresql.sql_server.sql
```

Yabancı anahtarlar WITH NOCHECK ile eklenir ve ardından denetlenir. Bir satır var olmayan bir satıra işaret ediyorsa betik, yarı yolda başarısız olmak yerine hangi kısıt olduğunu söyler ve onu denetlenmemiş bırakır.

Büyük bir döküm için sqlcmd'yi sunucuyla aynı makinede çalıştırın. En fazla 1000 satırlık her toplu iş kendi başına işlenir; böylece işlem günlüğü küçük kalır.

## En iyi sonuç için PostgreSQL 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:

- --format=plain, pg_dump'ın varsayılanı, SQL yazar. Custom veya directory arşivi (-Fc, -Fd), veritabanı sunucusu olmadan pg_restore -f dump.sql ile SQL'e çevrilir.
- --no-owner --no-privileges rolleri ve yetkileri dışarıda bırakır; dönüştürücü bunları zaten atlar, böylece döküm küçülür.
- pg_dumpall her veritabanını tek dosyaya döker; her birinin tablolarının adı onun adıyla başlar, böylece hiçbir şey çakışmaz.

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

Görünümler, somutlaştırılmış görünümler, fonksiyonlar, saklı yordamlar, tetikleyiciler, kurallar, satır güvenlik ilkeleri, eklentiler ve türler PostgreSQL'in kendi dilinde yazılır. Raporda adlarıyla listelenirler, asla sessizce atlanmazlar; böylece onları SQL Server için yeniden yazabilirsiniz.

## PostgreSQL - SQL Server 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.

### pg_dump -Fc arşivlerini okuyor mu?

Doğrudan değil: custom arşiv ikili bir biçimdir. pg_restore -f dump.sql dump.backup, bir sunucuya bağlanmadan onu dönüştürücünün okuduğu düz SQL'e çevirir. Dönüştürücü bir arşiv aldığında bunu söyler.

### Döküm hangi PostgreSQL sürümlerinden gelebilir?

PostgreSQL 10 ve sonrasından pg_dump ve pg_dumpall ile yazılmış, COPY veya INSERT satırları içeren dökümler. Her test dökümü PostgreSQL 13 ve 18'den gelir ve kaynağıyla hücre hücre karşılaştırılır.

### serial ve identity değerleri korunuyor mu?

Evet. Her tablonun serial veya identity sütunu bir IDENTITY sütunu olur, her satır kendi id'sini korur ve sonraki id en yüksek id'den sonra devam eder. SQL Server tablo başına tek sütun sayar, bu yüzden diğerleri değerlerini sayaçsız korur.

### Diziler, enum'lar ve diğer PostgreSQL türleri ne olur?

Diziler JSON dizisi, boolean'lar bit, uuid uniqueidentifier, saat dilimli timestamp'ler datetimeoffset olur. Metin PostgreSQL'deki gibi tam karşılaştırılır, citext ise büyük/küçük harfi yok sayar. Range'ler, geometrik türler ve bileşik türler PostgreSQL'in metnini korur.

### Fonksiyonlar, 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 SQL Server sürümlerinde yüklenir?

SQL Server 2017 ile 2025 arası. Aynı betik her birinde yüklenir ve bir sorun çıkarsa ilk hatada durur.

## Kaynak: PostgreSQL

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

## Hedef: SQL Server

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

## Kılavuz ve tüm ikililer

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