![](/img/trans.png)
[英]The metadata could not be determined because every code path results in an error; see previous errors for some of these
[英]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.