Неверное имя объекта сервера SQL - но таблицы перечислены в списке таблиц SSMS - PullRequest
293 голосов
/ 01 сентября 2009

Я пытаюсь создать Stored Procedure для вновь созданной базы данных. Однако SSMS intellisense не распознает более половины созданных таблиц.

Например, в то время как в левом столбце под таблицами у меня есть таблица dbo.Room, когда я набираю «dbo.» в новом окне запроса, эта таблица не отображается, фактически только 17 из 37 таблиц в списке.

Я не вижу разницы между таблицами, перечисленными по intellisense, и таблицами, которых нет. Если я вручную набираю dbo.Room, он подчеркивается с ошибкой

Неверное имя объекта 'dbo.Room' ..

Я что-то упустил при настройке таблиц?

ОБНОВЛЕНИЕ: я попытался обновить список таблиц (несколько раз)

Ответы [ 13 ]

631 голосов
/ 01 сентября 2009

Попробуйте:

Редактировать -> IntelliSense -> Обновить локальный кэш

Это должно обновить данные, кэшированные Intellisense, чтобы обеспечить поддержку заголовков и обнаружение ошибок перед выполнением.

ПРИМЕЧАНИЕ. Ваш курсор должен находиться в редакторе запросов, чтобы меню IntelliSense было видно.

72 голосов
/ 20 октября 2009

Ctrl + Shift + R также обновляет intellisense в Management Studio 2008.

35 голосов
/ 19 марта 2014

после создания нового объекта SQL Server ваш вновь созданный объект не обновляется в локальном кеше IntelliSence, и поэтому под ним отображается красная линия. Поэтому вам просто нужно обновить локальный кэш SSMS IntelliSence, и как только вы обновите его, IntelliSence автоматически добавит вновь созданный объект в кеш, и красная линия исчезнет. попробуйте это

Edit -> IntelliSense -> Refresh Local Cache или Ctrl + Shift + R

enter image description here

20 голосов
/ 16 марта 2018

Убедитесь, что выбранная БД является той, где находится таблица. Я запускал скрипт на Master. В моем случае мне пришлось переключиться на hr_db.

enter image description here

Ошибка новичка, но, может помочь кому-то.

17 голосов
/ 07 января 2015

В моем случае кэш IntelliSense выводил информацию об объектах для совершенно другой базы данных. Если бы я нажал кнопку «Новый запрос» в SSMS, он открыл бы запрос к моему каталогу по умолчанию на сервере, и этот редактор запросов всегда использовал бы только эту базу данных. Обновление кеша ничего не изменило. Перезапуск SSMS ничего не изменил. Изменение базы данных ничего не изменило.

В итоге я создал запрос, щелкнув правой кнопкой мыши базу данных, которую я на самом деле хотел использовать, и выбрав «Новый запрос» в этом контекстном меню. Теперь SSMS использует правильные объекты для IntelliSense.

10 голосов
/ 01 сентября 2009

Вы уверены, что данная таблица существует?

Обновили ли вы табличное представление в обозревателе объектов? Это можно сделать, щелкнув правой кнопкой мыши папку «таблицы» и нажав клавишу F5 .

Вам также может понадобиться обновить кэш Intellisense.

Это можно сделать, следуя по маршруту меню: Правка -> IntelliSense -> Обновить локальный кэш

8 голосов
/ 23 апреля 2014

Решение:

  • Нажмите меню Запрос,
  • , затем нажмите «Изменить базу данных».
  • Выберите подходящее имя базы данных.

Вот и все.

4 голосов
/ 29 ноября 2011

Даже после установки пакета обновления 3 (SP3) для SQL Server 2008 Enterprise это по-прежнему остается «проблемой». Ctrl + Shift + R , как все говорили, решил эту проблему для меня.

3 голосов
/ 08 декабря 2016

Та же проблема со мной, когда я использовал эту синтаксическую проблему.

Синтаксис:

Use [YourDatabaseName]
Your Query Here
2 голосов
/ 30 марта 2017

Решено для SSMS 2016.

Была похожая проблема, но Intellisense не было в меню Правка.

То, что казалось исправлением, включало и выключало Intellisens, щелкните правой кнопкой мыши на редакторе SQL и выберите «Intellisense Enabled». Снова щелкните правой кнопкой мыши на «Intellisense Enabled», чтобы снова включить его. Ctr Q, я тоже так делаю.

Это решило проблему, а также я знаю, что получить Intellisense в меню Edit.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...