在CREATE TABLE语句的执行SQL任务中动态决定表名

时间:2013-09-08 21:40:10

标签: sql ssis sql-server-2012

我想知道在SSIS执行SQL任务中是否可以这样做。我想检查是否存在表,如果它不存在,则创建表。我想将表名保存在变量中,这样我就可以针对不同的数据库执行任务,并能够更改表名。

作为一个例子,我有这个代码:

if not exists (select * from sysobjects where name='Table1' and xtype='U')
    Create Table Table1(
        Col11 varchar(10) primary key,
        Col12 varchar(10)
    );

为了灵活性,我想将值Table1存储在变量中,并在每次运行包时不断更改它以创建不同的表。

1 个答案:

答案 0 :(得分:3)

是的,这是可能的。 我将如何做到这一点:

  • 从TableName为您的SqlStatement构建另一个变量 变量。根据您的SSIS版本,这可以一分为二 方法:

    在SSIS 2008中,您需要使用Script Task来进行字符串连接。

    在SSIS 2012中,您可以利用Expression Task

  • 您可以使用Exressions中的Execute SQL Task标签添加 SqlStatementSource的表达式并将其指向您的变量。 变量应该是完整的陈述。