Connecting SQL Server to PostgreSQL

Installing the PostgreSQL ODBC Driver

  1. Download the PostgreSQL ODBC driver for your Windows platform. (Registration required.)
  2. Install and license the PostgreSQL ODBC driver on the machine where your SQL Server is installed.

    To do this, execute the file distribution that you downloaded in the previous step, and follow the on screen instructions.

    The install program starts the Easysoft License Manager, because you cannot use the PostgreSQL ODBC Driver until a license is obtained.

    The following types of license are available:

    • Free time-limited trial license which gives you free and unrestricted use of the product for a limited period (usually 14 days).
    • Full license if you have purchased the product. On purchasing the product you are given an authorization code, which you use to obtain a license
  3. In Easysoft License Manager, enter your details.

    You MUST enter the Name, E-Mail Address and Company fields.

    The E-Mail Address MUST be the same as the address used to register and download from the Easysoft web site or you will be unable to obtain trial licenses.

  4. Choose Request License.

    You are asked for a license type.

  5. Do one of the following:
    • For a trial license click Time Limited Trial and then click Next.

      The License Manager asks what software you are licensing. Select Easysoft Postgres ODBC Driver from the drop-down list and then click Next.

    • If you have obtained an authorization code for a purchased license, select Non-expiring License and then click Next.

      The License Manager requests your authorization code.

      Enter the authorization code and then click Next.

  6. The License Manager displays a summary of the information you entered and allows you to choose the method of applying for your license.
  7. Do one of the following:
    • Choose On-line Request if your machine is connected to the internet and can make outgoing connections to port 8884.

      The License Manager then sends a request to the Easysoft license server to activate your license key automatically. This is the quickest method and results in your details being entered immediately into our support database.

    • The remaining three options (Email Request, Print Request and View Request) are all ways to obtain a license if your machine is off-line (i.e. does not have a connection to the internet).

      Each of these methods involves providing Easysoft with information including your machine number (a number unique to your machine) and then waiting to receive your license key.

      Instead of emailing your details to Easysoft, you can enter them directly at the Easysoft web site and your license key will be emailed to you automatically.

      To use this method, click View Request, and then visit:

      In the Licensing page, enter your machine number (and authorization code for purchased license), click Submit and your license key will be emailed to you.

      When you receive the license key, you can activate it either by double-clicking the email attachment or by clicking Enter License on the License Manager main screen and pasting the license key into the dialog box.

    • Choose Finish to exit the License Manager.

      The installation is complete.

Configuring an ODBC Data Source

Before you can use the PostgreSQL ODBC Driver to connect your application to PostgreSQL, you need to configure an ODBC data source. An ODBC data source stores the connection details for the target database (e.g. PostgreSQL) and the ODBC driver that is required to connect to it (e.g. the PostgreSQL ODBC driver).

You configure ODBC data sources in ODBC Administrator, which is included with Windows. How you run ODBC Administrator depends on whether your version of Windows is 32-bit or 64-bit:

Use ODBC Administrator to create a PostgreSQL ODBC Driver data source:

  1. Choose the System DSN tab, and then choose Add.
  2. In the Create New Data Source dialog box, choose Easysoft ODBC-Postgres Driver, and then choose Finish.
  3. Complete these fields Easysoft ODBC-Postgres Driver DSN Setup dialog box:
    Setting Value
    DSN POSTGRESQL
    User Name The name of your PostgreSQL user.
    Password The password for your PostgreSQL user.
    Server The host name or IP address of the machine on which your PostgreSQL server is running.
  4. Use the Test button to verify that you can successfully connect to your PostgreSQL database.

Connecting SQL Server to PostgreSQL

Linked Server

These steps show you how to use a linked server to work with PostgreSQL data, just as if you were working with data stored in a SQL Server table:

  1. In Microsoft SQL Server Management Studio, connect to the SQL Server instance you want to create the linked server against.

    You need to log on with an account that is a member of the SQL Server sysadmin fixed server role to create a linked server.

  2. Right-click Server Objects. From the pop-up menu choose New > Linked Server.
  3. In the Linked server box, type "POSTGRESQL".
  4. From the Provider list, choose Microsoft OLE DB Provider for ODBC Drivers.
  5. In the Data source box, type the name of your Postgresql ODBC data source, and then choose OK.
  6. Type your PostgreSQL user name and password in the spaces provided. Choose OK.

    SQL Server verifies the linked server by testing the connection.

    • If you get the error "Specified driver could not be loaded due to system error 126: The specified module could not be found", choose Yes when prompted whether to keep the linked server. You need to restart your SQL Server instance before you can use the linked server. If SQL Server was already running when you installed the PostgreSQL ODBC driver, it will not have the latest version of the System PATH environment variable. The PostgreSQL ODBC driver Setup program adds entries for the driver to the System PATH. Restarting the instance makes these changes available to SQL Server, allowing it to load the PostgreSQL ODBC driver.
    • If you made a mistake when specifying the PostgreSQL ODBC driver data source, you get the error "Data source name not found and no default driver specified. If you get this error, choose No when prompted whether to keep the linked server and edit the value in the Data source box.
  7. You can query your PostgreSQL data either by using a:
    • Four part table name in a distributed query.

      A four part table name has the format:

      server_name.[database_name].[schema_name].table_name.

      For PostgreSQL you need to omit the database name and schema. For example:

      SELECT * from POSTGRESQL...employees
      
    • Pass-through query in an OPENQUERY function. For example:
      SELECT * FROM OPENQUERY(POSTGRESQL, 'SELECT * FROM employees')
      

      SQL Server sends pass-through queries as uninterpreted query strings to the PostgreSQL ODBC driver. This means that SQL Server does not apply any kind of logic to the query or try to estimate what that query will do.

SQL Server Integration Services (SSIS)

These instructions assume that you have Microsoft Visual Studio and SQL Server Data Tools for Visual Studio installed.

  1. Create a .csv file named postgresql.csv with the data your want to insert into PostgreSQL./li>
  2. In Visual Studio, create a new Integration Services Project.
  3. Drag a Data Flow Task from the Toolbox to the Control Flow tab.
  4. Choose the Data Flow tab.
  5. Drag a Flat File Source from the Toolbox to the Data Flow tab, and then press Return.

    Flat File Source is under the Other Sources list.

  6. In the Flat File Source Editor, choose New.
  7. In the Flat File Connection Manager Editor dialog box, browse for your .csv file.
  8. In the text qualifier box, type the column delimiter you used in your csv file.
  9. In the Error Output section, change the truncation action for description to Ignore failure. Choose OK.
  10. Drag an ODBC Destination from the Toolbox to the Data Flow tab, and then press Return.

    ODBC Destination is in the Other Destinations list.

  11. Select the Flat File Source. Drag the blue arrow over to the ODBC Destination.
  12. Select the ODBC Destination, and then press Return.
  13. In the ODBC Destination dialog box, choose New.
  14. In the Configure ODBC Connection Manager dialog box, choose New.
  15. In the Connection Manager dialog box, choose your PostgreSQL ODBC data source, and then use the OK button to return to the ODBC Source dialog box.
  16. In the Name of the table or the view list, type film. Choose Mappings and then choose OK.
  17. Choose the Start button to insert the records from postgresql.csv file into PostgreSQL.