Как получить доступ к данным Postgres из SQL Server (связанные серверы) - PullRequest
1 голос
/ 21 июня 2010

У меня следующая ситуация:

БД Сервер 1 является Sql Server 2008 и содержит базу данных А с записями транзакций. DB Server 2 - это Postgres и хост-база B с записями цен

Сервер2 добавлен в качестве связанного сервера к серверу 1.

Мне нужно выполнить запрос, где для каждой записи транзакции на сервере1 мне нужно проверить количество цен с сервера2.

В идеале это будет выглядеть так (запустить на сервере1):

выберите функцию t1.clientid, t1.item, t1.price, t1.time, server2.databaseX.myfunction (t1.item, t1.time) из транзакций t1 где угодно

Я играл с openquery, но сталкиваюсь с проблемами, пытаясь встроить параметры в динамический sql.

Есть ли удобный способ выполнить запрос такого типа на этих двух серверах?

Я не могу экспортировать соответствующие данные с server2 на server1, потому что их количество огромно. Я мог бы сделать это наоборот, но тогда я должен вернуть все обратно на server1. Как бы это было практически осуществлено, если бы он запускался каждый раз, когда пользователь запрашивает его с сервера отчетов (работающего на сервере1)?

Спасибо.

Ответы [ 2 ]

1 голос
/ 07 сентября 2010

OPENQUERY - определенно способ сделать это; какие проблемы возникают с динамическим SQL?

Возможно, создайте временную таблицу на сервере 1, импортируйте отфильтрованное подмножество данных PostgreSQL, используя параметризованный запрос , в эту временную таблицу, а затем присоединитесь к вашей временной таблице в конечном SQL-запросе.

0 голосов
/ 22 июня 2010

Я бы порекомендовал подключиться к server2 в клиентском приложении, а затем выполнить в нем второй запрос.ИМХО будет проще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...