簡體   English   中英

無法確定元數據,因為語句“插入”

[英]The metadata could not be determined because statement 'insert into

我有一條select語句,在其中創建了2個臨時表並在select之前進行了插入操作,然后從這些臨時表中獲取數據,從而在它們之間建立了連接。 這是我希望元數據成為最終選擇。 在ssms中,它運行良好,在ssis中,我不知道為什么會拋出該錯誤。 查詢是這樣的:

CREATE TABLE #Per (PerID bigint NOT NULL......)
CREATE TABLE #Pre (PerID bigint NOT NULL, IsWorking.......)
INSERT INTO #Per SELECT .... FROM .....
INSERT INTO #Pre SELECT .... FROM .....
SELECT * FROM #Per per LEFT JOIN #Pre pre ON per.PerID = pre.PerID

我已經測試了所有語句以確保它們和整個查詢正常工作,並且向我返回了數據,但是ssis拋出了錯誤:

The metadata could not be determined because statement 'INSERT INTO #Per SELECT ...... uses a temp table.".
Error at project_name [646]: Unable to retrieve column information from the data source. Make sure your target table in the database is available.

嘗試使用表變量代替類似:

DECLARE @Per TABLE (PerID bigint NOT NULL......)
DECLARE @Pre TABLE (PerID bigint NOT NULL, IsWorking.......)
INSERT INTO @Per SELECT .... FROM .....
INSERT INTO @Pre SELECT .... FROM .....
SELECT * FROM @Per per LEFT JOIN @Pre pre ON per.PerID = pre.PerID

應該工作正常

如果您正在使用SSIS 2012或更高版本,則它將使用系統存儲過程sp_describe_first_result_set來獲取表的元數據,並且它不支持臨時表。
但是您可以使用其他選項,例如表變量和CTE。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM