Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 динамический запрос и временая таблица  [new]
кириллk
Member

Откуда:
Сообщений: 1062
Добрый вечер!

Есть ли решение данной задачи

есть запрос

CREATE TABLE #t (
[id] int NULL,
)
insert into #t
select 1 as [id] union
select 2 as [id] 

Select * from openquery (база,
select id from  tab 
inner join #t on #t.id=tab.id
)


я понимаю что openquery ничего не знает про временую таблицу.
Но может можно как то извернутся, чтобы не тащить все данные из таблицы tab?

Спасибо
23 сен 15, 19:04    [18186875]     Ответить | Цитировать Сообщить модератору
 Re: динамический запрос и временая таблица  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
кириллk,

не использовать openquery, а выбирать from сервер.база..tab , если сервер, с которого забираем, позволяет такое.
либо динамически формировать openquery.
23 сен 15, 19:37    [18187049]     Ответить | Цитировать Сообщить модератору
 Re: динамический запрос и временая таблица  [new]
кириллk
Member

Откуда:
Сообщений: 1062
daw,

Спасибо. я попробую первый вариант.

А можно поподробнее "динамически формировать openquery."

openquery ничего же не знает про временную таблицу
24 сен 15, 00:43    [18187957]     Ответить | Цитировать Сообщить модератору
 Re: динамический запрос и временая таблица  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
кириллk
daw,

Спасибо. я попробую первый вариант.

А можно поподробнее "динамически формировать openquery."

openquery ничего же не знает про временную таблицу


а в запросе уже никакой временной таблицы не будет.
можно даже без openquery сделать
declare @sql nvarchar(max);
-- формируем строку.
set @sql = 'select id from tab inner join' 
+ собираем запросом строку (как - см. в faq "сложение символьных полей") '(select 1 as id union all select 2) t' 
+ ' on t.id = tab.id'
-- и выполняем
execute(@sql) at сервер
24 сен 15, 00:57    [18187971]     Ответить | Цитировать Сообщить модератору
 Re: динамический запрос и временая таблица  [new]
Glory
Member

Откуда:
Сообщений: 104751
кириллk
я понимаю что openquery ничего не знает про временую таблицу.
Но может можно как то извернутся, чтобы не тащить все данные из таблицы tab?


Select * from #t b inner remote join  linkedserver.mydb.myschema.tab a on b.id=a.id
24 сен 15, 08:36    [18188155]     Ответить | Цитировать Сообщить модератору
 Re: динамический запрос и временая таблица  [new]
кириллk
Member

Откуда:
Сообщений: 1062
Всем большое спасибо!
Сейчас попробую
24 сен 15, 10:20    [18188468]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить