2011-03-25 69 views
0

我想在SSIS中使用“执行SQL任务”来获取要存储在用户变量中的值。 该文件说使用'?'作为查询中参数的占位符,但是当我这样做时,我会遇到语法错误,试图解析查询。 所以查询是这样的:(OLE DB)执行SQL任务 - 使用输出参数

SELECT ? = AVG(Score) FROM Scorecards 

我也试过后加入OUTPUT“?”。我可以找到的具有输出参数的所有示例与

相似
EXEC ? = MyStoredProc param1, param2, ... 

尽管我没有使用存储过程,尽管如此,为什么SSIS不会将它用于select语句?

+0

我在我的代码中找不到示例,但我相信您还必须使用参数映射和/或结果集来将数据获取到用户变量。 – thursdaysgeek 2011-03-25 22:02:04

+0

是的,我也加入了参数映射,尽管SSIS没有那么深。当我按下“解析查询”来检查它是否认为语句正确时,它给我一个语法错误。 – nuit9 2011-03-25 22:09:42

回答

2

你需要的结果集属性设置为单行,然后修改您的查询是这样的:

select avg(score) as AvgScore from ScoreCards 

然后在结果集窗格中,单击添加,设置结果名称AvgScore,和变量名称变量(例如,User :: AvgScore)。

+0

我试过了。当它成功执行时,变量在任务后到达断点时不会在变量窗口中更新。 – nuit9 2011-03-28 16:56:11

+0

变量值不会在该窗口中更新。如果您在变量上添加监视并在执行期间打开监视或本地窗口,您将能够检查该值。 – grapefruitmoon 2011-03-28 18:17:02

+0

这似乎工作 - 谢谢 – nuit9 2011-03-28 18:43:17