Schema changes not updating in Intellisense in SQL

2019-01-27 12:31发布

问题:

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

回答1:

CTRL + SHIFT + R to update the intellisense, for short.



回答2:

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...



回答3:

Well done raising the issue - I have it frequently in VS 2008 SP1 but there coding the right name still produces an error squigly until the refresh happens - and I can't get it to do so at the moment. I suspect I need another shutdown/reload.