我想有一個ssis包來檢查文件夾(及其所有子文件夾)並只導入符合預定義條件的文件。取決於文件名是什麼,它將導入到一個特定的數據庫(全部駐留在同一個sql服務器中)。 該過程如下工作: 1.檢查匹配的文件 2.對於每個匹配的文件,解析文件的名稱以獲取確定將文件導入的位置的信息 3.截斷先前文件的表步驟將被加載到 4.導入文件(在數據流任務中)。ssis動態截斷表失敗
到目前爲止,我得到了第1步和第2步的工作,並且按照預期填充了截斷表的sql語句。我在ssms中手動運行這個sql語句,它工作。
但我無法通過步驟3中,得到了下面的錯誤:
Error: 0xC002F210 at Truncate table, Execute SQL Task: Executing the query "set nocount on; truncate table [db1].[DBO].[TBL_B..." failed with the following error: "Parameter name is unrecognized.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly. Task failed: Truncate table
附上封裝的設置。我錯過了什麼?
「參數名稱無法識別」。確保你的SQL任務沒有設置爲期望參數。同時轉儲出SSIS可用'sqlTruncteStatement'的運行時值。這聽起來像你可能有一個參數佔位符,當你不應該,特別是如果它是從一個文件名和一串字符串函數驅動。 –
@ElectricLlama,你是什麼意思「也轉儲出你的SSIS vitalrable sqlTruncteStatement的運行時值」? –
我假設您發佈的信息是動態構建使用表達式執行的截斷SQL。這個SQL引發了一個錯誤。因此,檢查併發布代碼生成的'sqlTruncateStatement'的內容。如果我真的很難看你的截圖,我可以看到它可能是'set nocount on;截斷桌'。所以現在檢查整個事情,因爲它正在引發這個錯誤。那裏可能有一個參數佔位符,或者你可能錯誤地指出你的SQL有參數。這些對我們來說都是未知的。 –