Поскольку я немного боролся с этим и не смог найти хороший онлайн-источник с простыми шагами, вот он.
Запустите следующий код в SSMS, чтобы создать связанный сервер. Это предполагает наличие экземпляра PostgreSQL на локальной машине (отсюда и localhost):
EXEC master.dbo.sp_addlinkedserver @server = N'POSTGRESQL ', @ srvproduct = Поставщик NLEMicrosoft OLE DB для драйвера ODBC ', @ Поставщик = N'MSDASQL», @ DATASRC = 'PostgreSQL', @ Место = 'локальный', @ Каталог = 'общественность'
Запустите следующий код в SSMS, чтобы создать сопоставление имени входа для связанного сервера:
EXEC master.dbo.sp_addlinkedsrvlogin @ Rmtsrvname = N'POSTGRESQL», @ Useself = N'False», @ Locallogin = NULL, @ Rmtuser = '', @rmtpassword = ''
Заявления о выдаче, такие как:
SELECT * FROM OpenQuery (POSTGRESQL, 'выберите my_column из предела my_table 10')
Мне пришлось использовать двойную кавычку
Вы можете использовать провайдер PGNP OLE DB для PostgreSQL (pgoledb.com). См. Пример того, как настроить связанный сервер на http://www.pgoledb.com/forum/viewtopic.php?f=4&t=6).
Это очень высокопроизводительный и масштабируемый драйвер. Мы используем его для работы с десятками миллионов таблиц строк.
С уважением, Carlos