当前位置:  开发笔记 > 数据库 > 正文

如何在SSIS作业中消除"未使用的输出列"警告?

如何解决《如何在SSIS作业中消除"未使用的输出列"警告?》经验,为你挑选了1个好方法。

我正试图在我的SSIS进度日志中删除一些虚假警告.我在使用原始SQL来完成工作的任务中收到一堆关于未使用列的警告.我有一个数据流负责在加载新数据之前将数据存档到临时表中.数据流如下所示:

+--------------------+
| OLEDB Source task: |
| read staging table |
+--------------------+
          |
          |
+---------------------------+
| OLEDB Command task:       |
| upsert into history table |
+---------------------------+
          |
          |
+---------------------------+
| OLEDB Command task:       |
| delete from staging table |
+---------------------------+

我的'upsert'任务是这样的:

--------------------------------------
-- update existing rows first...
update history
set    field1 = s.field1
    ...
from   history h
inner  join staging s
on     h.id = s.id
where  h.last_edit_date <> s.last_edit_date -- only update changed records

-- ... then insert new rows
insert into history
select s.*
from   staging s
join   history h
on     h.id = s.id
where  h.id is null
--------------------------------------

清理任务也是一个SQL命令:

--------------------------------------
delete from staging
--------------------------------------

由于upsert任务没有任何输出列定义,我在日志中收到一堆警告:

[DTS.Pipeline] Warning: The output column "product_id" (693) on output 
"OLE DB Source Output" (692) and component "read Piv_product staging table" (681) 
is not subsequently used in the Data Flow task. Removing this unused output column 
can increase Data Flow task performance. 

如何消除对这些列的引用?我尝试过几个不同的任务,但似乎没有一个让我"吞下"输入列并将它们从任务的输出中抑制掉.我想保持我的日志清洁,所以我只看到真正的问题.有任何想法吗?

谢谢!



1> Cade Roux..:

全部联盟 - 仅选择要传递的列 - 删除任何其他列.

我认为他们将在2008版本中解决这个问题,以允许从管道中修剪/抑制列.

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有