首页 > 解决方案 > 在我的执行 sql 任务中添加了 SSIS 额外引号

问题描述

我有一个存储表名的全局字符串变量,我想在编写查询时在执行 SQL 任务中使用这个变量。

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

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

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

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

标签: sql-serverssis

解决方案


?就像 SQL Server 中的变量。您不能在 SQL Server 中执行如下语法:

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

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

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

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

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


推荐阅读