【问题标题】:Dynamically decide the table name in execute SQL task for CREATE TABLE statement动态决定 CREATE TABLE 语句的执行 SQL 任务中的表名
【发布时间】:2013-09-08 21:40:09
【问题描述】:

我想知道这是否可以在 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 存储在一个变量中,并在每次运行包时不断更改它以创建不同的表。

【问题讨论】:

    标签: sql ssis sql-server-2012


    【解决方案1】:

    是的,这是可能的。 这是我的做法:

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

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

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

    • 您可以使用Execute SQL Task 中的Exressions 选项卡并添加一个 SqlStatementSource 的表达式并将其指向您的变量。 变量应该是完整的语句。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-29
      • 2015-06-30
      • 2012-12-12
      • 2023-03-27
      • 2010-09-06
      相关资源
      最近更新 更多