Использование OPENQUERY (хранимая процедура exec) для создания новой временной таблицы завершается с ошибкой 11526
На моем компьютере разработчика установлена полная версия SQL Server 2012.
Я пытаюсь следовать примерамВот, которые показывают, как создать новую временную таблицу, используя хранимую процедуру в качестве источника данных. Я пытаюсь объединить результаты нескольких хранимых процедур в одну временную таблицу (структура столбца / определение различных наборов результатов идентичны).
Чтобы проверить, работает ли сантехника, я выдаю этот запрос:
SELECT * FROM OPENQUERY("FOO\SQL2012", 'exec mySchema.myStoredProc')
Но я'я получаю эту ошибку из этого простого запроса на выборку:
Сообщение 11526, уровень 16, состояние 1, процедура sp_describe_first_result_set, строка 1
Метаданные не могут быть определены, потому что оператор 'вставить #tmp (foo1, foo2, foo3) выбрать «O» как foo1, foo2, foo3 ' в процедуреmyStoredProc» использует временную таблицу.
Если я правильно понимаю ошибку, OPENQUERY зависит от того, сможет ли сервер извлечь типы данных столбца изстойкий определение в базе данных, и временная таблица, созданная в моем хранимом процессе, будучи эфемерной, не имеет постоянного определения. Если это так,есть ли настройка, которая говорит OPENQUERY сделать все возможное и попытаться сделать разумное предположение о типах столбцов?
Вот's Dummy SP I 'м тестирования с:
create proc testproc
as
begin
create table #test
(id int, name varchar(5) );
insert into #test(id,name)values(1,'xxx');
select * from #test;
--drop table #test; -- tried dropping and not dropping, same error either way
end