我想根据条件在SSIS中执行任务。具体来说,我想创建一个表或清除它(截断它),具体取决于它是否已经存在。
目前我正在使用SQL任务,其中SQL可以完成工作,但我想知道是否有更好的方法......
谢谢!
答案 0 :(得分:5)
通过向优先约束添加表达式,这在技术上是可行的。 Click here for the details。基本步骤是......
创建一个包范围变量@FoundMyTable,如果表存在则保持值为1,如果表不存在则保持0
通过名为LookForMyTable的执行SQL任务设置@FoundMyTable的值,该任务使用select语句而INFORMATION_SCHEMA.TABLES返回表计数
SELECT COUNT(1)AS table_count
FROM INFORMATION_SCHEMA.TABLES t
WHERE t.TABLE_NAME = 'MyTable';
创建两个执行SQL任务:TruncateMyTable和CreateMyTable
将LookForMyTable连接到TruncateMyTable和CreateMyTable
双击LookForMyTable和TruncateMyTable&gt;之间的优先约束。 <表达和约束> @FoundMyTable == 1
双击LookForMyTable和CreateMyTable&gt;之间的优先约束 <表达和约束> @FoundMyTable == 0