SQL Server Integration Services - 向SQL语句添加参数

AJM*_*AJM 3 sql-server ssis

我有一个SQL Server Integration Services项目,它使用带有SQL命令的OLE DB源作为数据访问模式查询SQL Server 2005数据库.

我正在尝试参数化我的SQL查询,但语法不是@PARAM,当我尝试使用时?并单击参数我收到一条错误,指出"无法从SQL命令中提取参数".

我正在做类似的事情

SELECT * FROM [dbo].[TabledValuedFunction] (?)
Run Code Online (Sandbox Code Playgroud)

小智 7

在创建动态SQL语句时,我使用表达式的运气要好得多.所以在这个假设的情况下,我会创建2个变量Qry1和Qry1Param1.

在Qry1变量中,我会使用表达式编辑器来创建看起来像的东西

"SELECT * FROM [dbo].[TabledValuedFunction] where tbl_key = " +   @[User::Qry1Param1]
Run Code Online (Sandbox Code Playgroud)

Qry1Param1变量就像是1.

所以Qry1评估为

SELECT * FROM [dbo].[TabledValuedFunction] where tbl_key = 1
Run Code Online (Sandbox Code Playgroud)

然后,您可以更改OLEDB数据源以使用来自变量的SQL命令的数据访问模式,并输入User :: Qry1变量.