我在一个包中的其他地方有另一个任务,我可以通过脚本任务来构建sql命令,但是现在我有一个更简单的sql任务,我想对获取的记录数进行参数化,并通过包变量来驱动此参数
现在:
SELECT TOP 10 col1,col2,col3 from TABLE-A
我需要使用的内容
例如。 SELECT TOP ? col1,col2,col3 from TABLE-A
在哪里?对应于int类型的包变量。
我可以仅使用SQL任务来执行此操作,而不必先通过脚本任务来派生该语句吗?
[更新]
解决方案是我所怀疑的,我只是在sql任务之前添加了另一个脚本任务,并在那里生成了语句。然后将sql任务更改为使用包含该语句的变量。
答案 0 :(得分:2)
使用该变量在单独的变量中构建动态sql字符串,然后执行动态sql字符串变量。
答案 1 :(得分:0)
参数只能在WHERE子句中使用。
如Tab所述,您将需要创建一个变量表达式来构造SQL语句。然后,在“执行SQL任务”中,告诉它使用SQL字符串(请参阅“将查询参数映射到变量”部分中的项目符号要点4)。
答案 2 :(得分:0)
declare @intVal as int = 5
select * from
(
select ROW_NUMBER() over(order by Id) as RowNo, * from <tableName>
)a
where a.RowNo <= @intVal
这里@intVal将是参数,应该在SQL任务中进行映射