I don’t know why nobody has mentioned the simplest and easiest way using robust MS SQL Server Management Studio.
Simply you just need to use the built-in SSIS Import/export feature. You can follow these steps:
-
Firstly, you need to install the PostgreSQL ODBC Driver for Windows. It’s very important to install the correct version in terms of CPU arch (x86/x64).
-
Inside Management Studio, Right click on your database: Tasks -> Export Data
-
Choose SQL Server Native Client as the data source.
-
Choose .Net Framework Data Provider for ODBC as the destination driver.
-
Set the Connection String to your database in the following form:
Driver={PostgreSQL ODBC Driver(UNICODE)};Server=;Port=;Database=;UID=;PWD=
-
In the next page, you just need to select which tables you want to export. SQL Server will generate a default mapping and you are free to edit it. Probably you`ll encounter some Type Mismatch problems which take some time to solve. For example, if you have a boolean column in SQL Server you should export it as int4.
Microsoft Docs hosts a detailed description of connecting to PostgreSQL through ODBC.
PS: if you want to see your installed ODBC Driver, you need to check it via ODBC Data Source Administrator.