Ever get this message in SQL Server Management Studio (SSMS) when you’re certain that the object exists?
Then it proves you right when you go ahead and execute the command anyway?
Why does SSMS complain that the object doesn’t exist when it obviously does?
This happens because SSMS does not monitor database changes made in the query window. Let’s look at an example. Let’s say you create a table using the SSMS tools—in this case, the menu that comes up when you right-click the Tables folder in SSMS Object Explorer.
Because you asked SSMS to create the table, it is aware of the new object, and it refreshes its caches automatically to include it. So, after you save the new table, you see it listed in the Tables folder, …
… you see it in Intellisense, …
… and SSMS doesn’t complain about it with a “red squiggly” as it did in the very first figure of this post.
But now let’s say you create a table using a SQL CREATE TABLE command in a query window.
SSMS doesn’t monitor changes made to the database by SQL commands, so, even though the command completed successfully and the new table now exists in the database, SSMS is not aware of it, and so it doesn’t refresh its caches and the new table doesn’t appear in the Tables folder, …
… it doesn’t appear in Intellisense, …
… and SSMS will use a red squiggly to complain about it if you reference it in a query window, just like it did in the very first figure of this post.
What to do?
Fortunately, it’s very easy to ask SSMS to update its caches. To update a folder cache, you can right-click the folder in Object Explorer and select Refresh (btw, you can also refresh individual folders, tables, columns, entire databases at once, and just about anything you see listed in Object Explorer).
Another way is to select a folder or other item in Object Explorer, then use the Refresh button at the top of the Object Explorer panel to refresh the item you select. This approach has the advantage of allowing you to refresh more than one item in Object Explorer.
That’s how you update the folders in SSMS. It is just as easy to update the Intellisense cache. Just select the Edit menu from any query window, then Intellisense, and then Refresh Local Cache or use the keystroke shortcut Ctrl-Shift-R.