[sql] SQL Server reports 'Invalid column name', but the column is present and the query works through management studio

I've hit a bit of an impasse. I have a query that is generated by some C# code. The query works fine in Microsoft SQL Server Management Studio when run against the same database.

However when my code tries to run the same query I get the same error about an invalid column and an exception is thrown. All queries that reference this column are failing.

The column in question was recently added to the database. It is a date column called Incident_Begin_Time_ts .

An example that fails is:

select * from PerfDiag 
where Incident_Begin_Time_ts > '2010-01-01 00:00:00';

Other queries like Select MAX(Incident_Being_Time_ts); also fail when run in code because it thinks the column is missing.

Any ideas?

This question is related to sql sql-server

The answer is


Just press Ctrl + Shift + R and see...

In SQL Server Management Studio, Ctrl+Shift+R refreshes the local cache.


In my case I was trying to get the value from wrong ResultSet when querying multiple SQL statements.


Just had the exact same problem. I renamed some aliased columns in a temporary table which is further used by another part of the same code. For some reason, this was not captured by SQL Server Management Studio and it complained about invalid column names.

What I simply did is create a new query, copy paste the SQL code from the old query to this new query and run it again. This seemed to refresh the environment correctly.


If you are running this inside a transaction and a SQL statement before this drops/alters the table you can also get this message.


Also happens when you forget to change the ConnectionString and ask a table that has no idea about the changes you're making locally.


If you are using variables with the same name as your column, it could be that you forgot the '@' variable marker. In an INSERT statement it will be detected as a column.


I eventually shut-down and restarted Microsoft SQL Server Management Studio; and that fixed it for me. But at other times, just starting a new query window was enough.


In my case it seems the problem was a weird caching problem. The solutions above didn't work.

If your code was working fine and you added a column to one of your tables and it gives the 'invalid column name' error, and the solutions above doesn't work, try this: First run only the section of code for creating that modified table and then run the whole code.


Including this answer because this was the top result for "invalid column name sql" on google and I didn't see this answer here. In my case, I was getting Invalid Column Name, Id1 because I had used the wrong id in my .HasForeignKey statement in my Entity Framework C# code. Once I changed it to match the .HasOne() object's id, the error was gone.


In my case I restart Microsoft SQL Sever Management Studio and this works well for me.


I've gotten this error when running a scalar function using a table value, but the Select statement in my scalar function RETURN clause was missing the "FROM table" portion. :facepalms: