2013-02-19 56 views
3

標量值TSQL函數設置一個變量我有一個TSQL標量值函數如何使用SSIS SQL任務

ALTER FUNCTION [dbo].[MyDB_GetJobId] 
(
) 
RETURNS [uniqueidentifier] 

其結果需要進入一個SSIS用戶變量vJobId,聲明爲String。 SqlStatementSource是EXEC ? = dbo.MyDB_GetJobId();結果集如下:Result Name:0; Variable NameUser::vJobId

它不工作,錯誤信息如下

"EXEC ? = dbo.MyDB_GetJobId()" failed with the following error: "No value given for one or more required parameters.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.

連接是好的(一個普通的SQL請求運行正常),沒有輸入參數,......你能幫忙嗎?謝謝。

+0

ResultSet是單列 – 2013-02-19 18:31:40

+0

http://www.sqlis.com/post/The-Execute-SQL-Task.aspx介紹瞭如何使用存儲過程,而不是功能。另外,我不確定我是否理解0s和?s,也許這是問題所在。 – 2013-02-19 18:33:35

+0

它現在運行,但用戶變量值未設置。我嘗試過'SELECT dbo.MyDB_GetJobId()AS vJobId'並將'Result Name'設置爲vJobId,但用戶變量仍爲空。 – 2013-02-19 18:40:21

回答

12

我最初沿着嘗試使用參數映射的方向返回,但這是不正確的路徑。

相反,我有我的執行SQL任務配置如圖所示。我的ResultSet是「單排」。我的SQLStatement被簡單地「SELECT dbo.MyDB_GetJobID()」

Execute SQL General tab

在結果集標籤,因爲這是單排的結果集類型,那麼我們提供具有零序基於系統每列的映射。

Execute SQL Result Set tab

這是被分配給所述可變User::SingleRow範例顯示了結果。您可以忽略Other,因爲我試圖通過參數映射選項卡使它工作。

enter image description here