I’ve notice an issue – it feels like a bug but I suspect a ‘feature’ – in SSMS in SQL Server 2008.
I have various tabs open, for example an alter table script in one table and a SProc that queries that table in another tab, and when I execute my Alter Table script the changes are not reflected in Intellisense in the other tab.
I can create new queries and the changes are still not reflected in Intellisense. If I open a new SSMS instance, the changes are reflected, until I make further changes, of course.
However, if you over-rule Intellisense and push ahead with your modified tables and code, everything compiles without a grumble (as expected).
Is this a bug? A feature? Is there a setting somewhere that alters this behaviour? I checked in the options but couldn’t see anything
And no sooner than I post the question, I find the right phrase for a successful search on google.
Yes folks, this is indeed a feature! The intellisense relies on a local cache which you need to manually refresh. See:
http://blogs.msdn.com/dtjones/archive/2008/09/11/refreshing-the-intellisense-cache.aspx
Also: Ninjapig’s alternative
It’s more than a bit annoying IMHO, but I’m sure the experts would argue there is some important need for it to be this way. After further checking, I’ve been able to add a ‘Refresh Local Cache’ button to one of the toolbars. Having quickly tried a refresh, it appears that the refresh takes some time, because Intellisense went from being out of date, to non-existent, and back to updated or a minute or so.
I’m tempted to pull this question, but I’ll leave it here in case it helps someone else with this issue, or until someone else decides otherwise…