使用表名作为ssis中的变量

时间:2013-10-07 21:46:42

标签: sql-server ssis oledb

我正在尝试使用SSIS构建动态导出。

我设置了一个变量TableName - 字符串并确定了包的范围。 我设置了一个sql任务来查找我想要的表名,并将结果集映射到上面的变量。 (这项任务很好)

然后我将另一个变量添加为SQL("SELECT * FROM [CRDATA].[dbo]."+@[User::TableName]) -string并将作用域添加到包中并设置数据流任务。在内部数据流中,我添加了一个OLEDB源并设置了SQL变量的输入并选择了上面的变量。此任务失败。 错误是:

Error at Data Flow Task [OLE DB Source [1]]: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80040E14.
An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 10.0
 Hresult: 0x80040E14  Description: "Statement(s) could not be prepared..
An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 10.0  
Hresult: 0x80040E14  Description: "Incorrect syntax near '+'..
------------------------------
ADDITIONAL INFORMATION:

Exception from HRESULT: 0xC0202009 (Microsoft.SqlServer.DTSPipelineWrap)

我已在sql任务,数据流上设置延迟验证为true,并在OLEDB Source属性中将validatemetadata设置为false

我有一种感觉我在SQL变量中犯了一些错误。这里的任何帮助将非常感谢。

0 个答案:

没有答案