我正试图在我的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.
如何消除对这些列的引用?我尝试过几个不同的任务,但似乎没有一个让我"吞下"输入列并将它们从任务的输出中抑制掉.我想保持我的日志清洁,所以我只看到真正的问题.有任何想法吗?
谢谢!
全部联盟 - 仅选择要传递的列 - 删除任何其他列.
我认为他们将在2008版本中解决这个问题,以允许从管道中修剪/抑制列.