title: Checking if column exists in temporary table always returns false in SQL Server
body: <p>I have the following Execution statement which creates a table (using data from another procedure), inserts the values into a temporary table, adds an image column (because they cannot be included in the grouping), and then updates it based on criteria from another temporary table (the resulting table fields gets used in a SSRS report, so I need to retain the IMAGE data type):</p>
  
  <pre><code>EXEC ('SELECT ' + @COL_TO_GROUP_BY + @COL_ADDITONAL + @sColVals + ' INTO
  #RESULTS_TABLE from (' + @SQL_STATEMENT + ') A ' + @WHERE_CLAUSE + ' GROUP BY ' +
  @COL_TO_GROUP_BY +
  
  ' ALTER TABLE #RESULTS_TABLE
  ADD IMAGE_DATA IMAGE
  
  IF EXISTS(SELECT * FROM tempdb.INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 
  ''COLUMN_A'' and TABLE_NAME LIKE ''#RESULTS_TABLE%'')
  BEGIN
      UPDATE #RESULTS_TABLE
      SET IMAGE_DATA = FILE_DATA
      FROM #RESULTS_TABLE A, #IMAGE_TABLE B 
      WHERE A.COLUMN_A = B.COLUMN_A
  END
  
  SELECT * FROM #RESULTS_TABLE')
  </code></pre>
  
  <p>The problem is that regardless of whether COLUMN_A exists or not, the column for IMAGE_DATA is always NULL. Is there any other way to get data into the IMAGE_DATA column? Please help!</p>
  
  <p>Note: I will <em>not</em> be accepting any answers that conclude that the problem is related to the content in other tables, more specifically from the WHERE clause. I have done multiple validations to ensure the conditions can be both true and false (matching rows, no matching rows, etc..). So this rules out the conditional statement. Thanks.</p>
  
  <p><strong>EDIT:</strong></p>
  
  <p>I'm still not completely sure what the exact cause of it was, but I ended up creating a global temporary table and ran two separate procedures, now it seems to be working fine. I had to accept the answer that most closely matched my own solution. All answers and comments were very viable. Thanks!</p>