在我的执行SQL任务中添加了SSIS额外引号

时间:2018-12-05 12:39:00

标签: sql-server ssis

我有一个存储表名的全局字符串变量,并且在编写查询时希望在Execute SQL Task中使用此变量。

我在“执行SQL任务”中具有的查询是:CREATE TABLE ?

这应该在Netezza系统内创建一个表,这是我的OLEDB连接到的表。 (连接成功)

查看输出时遇到的问题是:ERROR: 'CREATE TABLE 'TableName''期望标识符找到“关键字”。

如您所见,它在表名的周围添加了引号,该表名存储在变量中。在参数映射内部,我添加了方向=>输入,数据类型=> nvarchar,参数名称=> 0和参数大小=> 0的变量。如何在不带引号的情况下访问变量的值?

1 个答案:

答案 0 :(得分:1)

?就像SQL Server中的变量。您无法在SQL Server中执行以下语法:

DECLARE @Table sysname = N'YourTable';
SELECT *
FROM @Table;

您需要在SSIS包中创建第二个变量,并将表达式设置为:

"CREATE TABLE " + {Your Variable} + "..."

(显然,将{Your Variable}替换为变量的全名。例如@[User::TableName]

然后,您需要将SQLSourceType的值更改为Variable,然后在SourceVariable下拉列表中选择您的 new 变量。