2013-02-19 64 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