Метаданные не могут быть определены, потому что инструкция INSERT INTO #temp_display () values () использует временную таблицу
Я обновил пакет служб SSIS с 2008 по 2014 год. Кроме того, я изменил значение поставщика на "Provider=SQLNCLI11.1 ". Когда я бегу, я получаю ошибку, как
OLE_SOURCE_RECORDS [9]] Ошибка: код ошибки служб SSIS DTS_E_OLEDBERROR.
Произошла ошибка OLE DB. Код ошибки: 0x80004005.
Доступна запись OLE DB. Источник: "Собственный клиент Microsoft SQL Server 11.0"
Hresult: 0x80004005 Описание: "Не удалось определить метаданные, так как значения оператора INSERT INTO #temptest ( [a],[b]) (0," b "в процедуре SPtest" используют временную таблицу. ".
Я исследовал и обнаружил, что мы должны использовать С набором результатов вместо временной таблицы. Но мне нужно изменить весь SQL-запрос в SP.
Есть ли способ запустить пакет без изменения хранимой процедуры.
1 ответ
Если вы хотите использовать локальную временную таблицу в службах SSIS, вы должны знать о двух настройках:
1) RetainSameConnection
свойство True
Локальная временная таблица видна только в текущем сеансе. Поэтому вам необходимо сохранить связь между компонентами.
2) ValidateExternalMetadata
ложно