Я делаю некоторые довольно сложные запросы против удаленного связанного сервера, и было бы полезно смочь хранить некоторую информацию во временных таблицах и затем выполнить соединения против него - все с удаленными данными. Составление временных таблиц локально и присоединение против них по проводу являются непомерно медленными.
Действительно ли возможно вынудить временную таблицу быть созданной на удаленном сервере? Предположите, что у меня нет необходимых полномочий для создания моих собственных реальных (постоянных) таблиц.
Невозможно напрямую создавать временные таблицы на связанном удаленном сервере. Фактически, вы не можете использовать DDL против связанного сервера.
Для получения дополнительной информации о правилах и ограничениях использования связанных серверов см .:
Рекомендации по использованию распределенных запросов (электронная документация по SQL 2008).
Одно решение (и вне моей головы, и это только работать, если у вас были разрешения на удаленном сервере) вы могли бы:
Не идеальный, но возможный обходной путь.
Это работает из SQL 2005 SP3, связанного с SQL 2005 SP3 в моей среде. Однако, если вы проверите tempdb, вы обнаружите, что таблица фактически находится в локальном экземпляре, а не в удаленном экземпляре. Я видел это как решение на других форумах и хотел увести вас от этого.
create table SecondServer.#doll
(
name varchar(128)
)
GO
insert SecondServer.#Doll
select name from sys.objects where type = 'u'
select * from SecondServer.#Doll