我想让用户输入他们将要使用的数据库路径。
例如: @SourceDB = DatabaseA.dbo。
然后我想在数据流或执行SQL任务中使用变量。
我的问题:如何在这两个任务中引用变量?这些方式似乎都不适合我:
SELECT Field1, Field2 FROM @SourceDB + tablename
或
"SELECT Field1, Field2 FROM " + @[User::SourceDB] + "tablename"
或
SELECT Field1, Field2 FROM ? tablename
答案 0 :(得分:1)
您将无法将其用作参数?
。其他人试图这样做并遇到你正在经历的事情。
我要做的是定义一个变量,称之为SourceQuery,String的数据类型,在包级别作用域。在该变量的属性窗口(F4)中,将EvaluateAsExpression属性更改为True。然后在表达式中使用您已指定的公式。
"SELECT Field1, Field2 FROM " + @[User::SourceDB] + "tablename"
最后在你的OLE DB Source
中,将访问模式更改为表或视图为“来自变量的SQL命令”,然后事情才能正常工作。
需要注意的一点是,如果这些列的数据类型发生更改,则您的SSIS包将无法通过验证步骤。