這是我見過的最愚蠢的事情。SSIS執行SQL任務輸出參數-1沒有顯示正確
在SSIS 2005中,我有一個執行SQL任務,它運行一個SQL 2005存儲過程,該過程需要兩個IN參數和一個OUTPUT參數。 IN參數是靜態的,所以在命令字符串中被硬編碼。 OUTPUT參數被拖入Int32類型的包變量中(儘管在參數映射頁面上的執行SQL任務中告訴我數據類型爲LONG)。
當我運行SQL Task並且輸出參數返回大於0的值(如2)時,變量將填充爲2.當我運行SQL任務並且輸出參數返回-1時,包變量填充了一些值,如66682316.我可以在SSMS中運行proc,並且如果該值預填充爲-1,則它會返回-1給我。
DECLARE @out int
SET @out = -1
EXECUTE MyProc 'param1', 'param2', @out OUTPUT
SELECT @out -- returns -1
有沒有人知道爲什麼它會返回這個值而不是-1?我確定我的變量是Int32而不是UInt32。