2016-02-26 71 views
0

我想创建一个表。在表名id是唯一的 (MARKET_ id是表的名称)。ssis字符串变量值应该用于执行sql任务

id有前导零需要保留。所以我宣称id是一个字符串变量。

例如:id=02161515。在参数映射中,我将它映射为VARCHAR

当我使用sql语句CREATE TABLE MARKET_?;时发生错误。它导致:CREATE TABLE MARKET_'02161515';引号是不必要的,并在sql语句中发现错误"'"

请帮忙!

回答

1

我想你有列添加到您的表,但不张贴?

解决此问题的一种方法是创建两个变量,一个用于表名,一个用于create table语句。

实施例(用于演示仅):
第一个变量是TABLE_NAME并用下式定义为动态命名的示范:
"dmu.MY_TABLE_"+(DT_STR,30,1252)datepart("s",getdate()) + "(id int)"

第二变量是CREATE_TABLE_SQL和定义如下:
"Create table "+ @[User::TABLE_NAME]

SSIS Varibles

下一页更改Execute_SQL_Task的设置:
设置SQLSourceType到可变SourceVariable为User :: CREATE_TABLE_SQL Execute_SQL_Task Settings
这将在数据库中创建表

+0

非常感谢您的洞察力 –