1

我想让用户输入他们将使用的数据库路径。

例如:@SourceDB = DatabaseA.dbo。

然后我想在数据流或执行 SQL 任务中使用这些变量。

我的问题:如何引用这两个任务中的变量?这些方法似乎都不适合我:

SELECT Field1, Field2 FROM @SourceDB + tablename

或者

"SELECT Field1, Field2 FROM " + @[User::SourceDB] + "tablename"

或者

SELECT Field1, Field2 FROM ? tablename
4

1 回答 1

1

您将无法将其用作参数?。其他人试图这样做并遇到你正在经历的事情。

我要做的是定义一个变量,称之为 SourceQuery,数据类型为 String,范围为包级别。在该变量 (F4) 的属性窗口中,将 EvaluateAsExpression 属性更改为 True。然后在表达式中使用您已经指定的公式。 "SELECT Field1, Field2 FROM " + @[User::SourceDB] + "tablename"

最后,在您的 中OLE DB Source,将访问模式更改为 table 或 view 为“来自变量的 SQL 命令”,然后一切就可以正常工作了。

需要注意的一个警告是,如果这些列的数据类型发生更改,您的 SSIS 包将无法通过验证步骤。

于 2013-04-12T18:54:30.647 回答