title: How to eliminate 'unused output column' warnings in SSIS jobs?
body: <p>I'm trying to get rid of some spurious warnings in my SSIS Progress log. I'm getting a bunch of warnings about unused columns in tasks that use raw SQL to do their work. I have a Data Flow responsible for archiving data in a staging table prior to loading new data. The Data Flow looks like this:</p>
  
  <pre><code>+--------------------+
  | OLEDB Source task: |
  | read staging table |
  +--------------------+
            |
            |
  +---------------------------+
  | OLEDB Command task:       |
  | upsert into history table |
  +---------------------------+
            |
            |
  +---------------------------+
  | OLEDB Command task:       |
  | delete from staging table |
  +---------------------------+
  </code></pre>
  
  <p>my 'upsert' task is something like:</p>
  
  <pre><code>--------------------------------------
  -- 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 &lt;&gt; 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
  --------------------------------------
  </code></pre>
  
  <p>The cleanup task is also a SQL command:</p>
  
  <pre><code>--------------------------------------
  delete from staging
  --------------------------------------
  </code></pre>
  
  <p>Since the upsert task doesn't have any output column definitions, I'm getting a bunch of warnings in the log:</p>
  
  <pre><code>[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. 
  </code></pre>
  
  <p>How can I eliminate the references to those columns? I've tried dropping in a few different tasks, but none of them seem to let me 'swallow' the input columns and suppress them from the task's output. I'd like to keep my logs clean so I only see real problems. Any ideas?</p>
  
  <p>Thanks!</p>