在ssis中使用execute sql task创建表无法解析

时间:2017-04-25 14:49:12

标签: sql-server excel ssis etl sql-server-data-tools

我正在尝试根据变量在Excel工作表中创建一个表。当我在控制流程中执行SQL任务时,它会给我一个错误

  

" [执行SQL任务]错误:执行查询"创建表' XXX'
  (' SEQ_ID' lo ..."因以下错误而失败:"语法错误   CREATE TABLE语句。"。可能的失败原因:问题   查询," ResultSet"属性设置不正确,参数未设置   正确,或连接未正确建立"。

我使用的变量是

    "Create Table'"+(DT_STR,20,1252) @[User::SALES]+ "'           ('SEQ_ID' long
      ,'LEGACY_CUSTOMER_ID' longtext
      ,'NAME' longtext

      ,'LEGACY_DB' longtext
       ,'ADDRESS_STREET' longtext
       ,'ADDRESS_CITY' longtext
       ,'ADDRESS_STATE' longtext
       ,'ADDRESS_COUNTY' longtext
       ,'ADDRESS_ZIP_CODE' longtext

      ,'SALES_PERSON' longtext
  )"

下面是execute sql任务的图像 enter image description here

1 个答案:

答案 0 :(得分:1)

尝试

  • 使用`而不是'
  • 使用NVARCHAR(255)代替longtext
  • 检查单词之间的空格

您的变量应该看起来像

"Create Table `" + (DT_STR,20,1252) @[User::SALES] + "`           
(`SEQ_ID` INTEGER
  ,`LEGACY_CUSTOMER_ID` NVARCHAR(255)
  ,`NAME` NVARCHAR(255)
  ,`LEGACY_DB` NVARCHAR(255)
   ,`ADDRESS_STREET` NVARCHAR(255)
   ,`ADDRESS_CITY` NVARCHAR(255)
   ,`ADDRESS_STATE` NVARCHAR(255)
   ,`ADDRESS_COUNTY` NVARCHAR(255)
   ,`ADDRESS_ZIP_CODE` NVARCHAR(255)
   ,`SALES_PERSON` NVARCHAR(255)
 )"

您可以阅读此链接中提供的示例