2011-12-20 56 views
4

我知道这个问题早就提出过了。
大部分答案都不相关。
Google显示解决方案是在“数据流任务”中配置表达式并设置查询。SSIS - 将参数传递给ADO .NET源查询

但是在ADO .NET源,当我尝试预览我不断收到"Must declare the variable '@'"
输出它不显示此错误全变量 - "@[User::GLOBAL_PARAMETER]"

我认为这是因为"[USER::"不是SQL中正确的语法;但那么如何设置呢?!

+0

也表达这将有助于 - 当我在数据流任务中配置SQL命令表达式时,我把它放在引号中,所以它被当作字符串文字。我想这就是每个人都是这样做的。 – PlanetUnknown 2011-12-20 21:31:16

+0

我不明白你的问题:你究竟在哪里试图使用变量和什么? “数据流任务”是一个容器,通常在其他任务或数据流任务内的变换中使用变量。您需要明确说明您设置变量的位置以及它代表的内容,例如一个连接字符串,SQL字符串,文件名等 – Pondlife 2011-12-21 08:59:49

回答

2

从你的描述好像您有一个错误,由于使用而不是在处理变量值的查询字符串中的变量名。换句话说:

在表达式生成器"SELECT * FROM @[User::TABLE]"WRONG

"SELECT * FROM " + @[User::TABLE]正确

如果你共享你正在使用的查询

+0

小幅盘整,不理解,但不得不在@ [用户:: TABLE]前添加DT_WSTR,30),使其正常工作。但是,谢谢你提供了99%的解决方案! – PlanetUnknown 2011-12-23 15:00:23

+1

@PlanetUnknown(DT_WSTR,30)是将数据类型转换为字符串。您必须使用任何不是“字符串”的变量。很高兴有帮助 – cfrag 2011-12-27 09:32:53