Могу ли я использовать поставщика SQLOLEDB в запросе OPENROWSET с sql 2005 на sql 2008 ???
SELECT * FROM OPENROWSET ('SQLOLEDB','[servername]';'login';'pw',
'set fmtonly off
EXEC DB.dbo.SP 6,1,''B20121110'' ')
Спасибо
Да, подход OpenRowset действительно работает в SQL Server 2008, и SQL Server 2005 принимает соединение с поставщиком SQLOLEDB.
Вам нужно будет включить Ad Hoc Distributed Queries
чтобы разрешить этот тип доступа (на исходном сервере). Обратите внимание, что это угроза безопасности, и это статья подчеркивает этот риск. Эта ссылка также показывает вам, как включить эту опцию, я не делюсь кодом здесь, поэтому вы можете прочитать предупреждение самостоятельно.
В зависимости от того, что вы пытаетесь сделать, это может быть не лучшим способом получить данные с целевого сервера. Возможно, вам будет лучше загружать данные с этого сервера на свой сервер через процесс ETL в SSIS, выполнять часть работы в приложении по получению данных из каждого источника и т. Д. Вы также можете создать и определить связанный сервер для использования для подключения к другому SQL Server, но некоторые проблемы со связанными серверами (некоторые проблемы безопасности, некоторые проблемы производительности при выполнении удаленных запросов и отправке данных туда и обратно, а также присоединении к кросс-серверам и т.