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

Откуда:
Сообщений: 1368
Какие права нужны чтобы объявить табличную переменную через openquery?
Либо как создать временную таблицу через openquery а потом ее использовать?
т.к сейчас есть ошибка
Msg 11525, Level 16, State 1, Procedure sp_describe_first_result_set, Line 1
The metadata could not be determined because statement .... uses a temp table.
24 дек 15, 16:23    [18605193]     Ответить | Цитировать Сообщить модератору
 Re: права чтобы объявить табличную переменную через openquery  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
а делаете то что ?
24 дек 15, 16:24    [18605201]     Ответить | Цитировать Сообщить модератору
 Re: права чтобы объявить табличную переменную через openquery  [new]
смотрю_тут
Member

Откуда:
Сообщений: 1368
запрос через openquery делаю, в котором есть создание временной таблицы и затем она заполняется
24 дек 15, 16:39    [18605262]     Ответить | Цитировать Сообщить модератору
 Re: права чтобы объявить табличную переменную через openquery  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
а почему не наоброт ?
заполняйте себе временую таблицу запросмо и опенквери да и все ?
OPENQUERY

автор
Executes the specified pass-through query on the specified linked server. This server is an OLE DB data source. OPENQUERY can be referenced in the FROM clause of a query as if it were a table name. OPENQUERY can also be referenced as the target table of an INSERT, UPDATE, or DELETE statement. This is subject to the capabilities of the OLE DB provider. Although the query may return multiple result sets, OPENQUERY returns only the first one.
24 дек 15, 16:57    [18605356]     Ответить | Цитировать Сообщить модератору
 Re: права чтобы объявить табличную переменную через openquery  [new]
смотрю_тут
Member

Откуда:
Сообщений: 1368
к примеру так

select *  from openquery(server1,
'
select *  into #t from server2.bd.[dbo].[Calendar] calend 
where calend.[Date] between ''20150601'' and ''20151231'' and DAY(calend.[Date])=1
select * from #t
;
')

ошибка
автор
The metadata could not be determined because statement 'select * from #t' uses a temp table.
24 дек 15, 16:57    [18605360]     Ответить | Цитировать Сообщить модератору
 Re: права чтобы объявить табличную переменную через openquery  [new]
invm
Member

Откуда: Москва
Сообщений: 9913
смотрю_тут,

Фокус не выйдет. Вместо временной таблицы придется объявлять табличную переменную с явным перечислением столбцов.
24 дек 15, 17:27    [18605481]     Ответить | Цитировать Сообщить модератору
 Re: права чтобы объявить табличную переменную через openquery  [new]
Glory
Member

Откуда:
Сообщений: 104751
смотрю_тут
ошибка
автор
The metadata could not be determined because statement 'select * from #t' uses a temp table.

разве ошибка непонятна ?
24 дек 15, 18:42    [18605807]     Ответить | Цитировать Сообщить модератору
 Re: права чтобы объявить табличную переменную через openquery  [new]
aleks2
Guest
select *  from openquery(server1,
'
select *  into #t from server2.bd.[dbo].[Calendar] calend 
where calend.[Date] between ''20150601'' and ''20151231'' and DAY(calend.[Date])=1;

select top(0) *  from server2.bd.[dbo].[Calendar]
union all
select * from #t;
')
25 дек 15, 10:10    [18607932]     Ответить | Цитировать Сообщить модератору
 Re: права чтобы объявить табличную переменную через openquery  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 9155
Нельзя, значит нельзя, хитрые сибирские мужики. Напишите на удаленном сервере процедуру и работайте с ней.
25 дек 15, 11:43    [18608463]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить