SQL server недопустимое имя объекта - но таблицы перечислены в списке таблиц SSMS
Я пытаюсь создать Stored Procedure
для вновь созданной базы данных. Однако SSMS
intellisense не распознает более половины созданных таблиц.
например, в левой колонке под таблицами у меня есть таблица dbo.Room
, когда я типа "dbo.
" в новом окне запроса эта таблица не указана, фактически перечислены только 17 из 37 таблиц.
Я не вижу разницы между таблицами, перечисленными intellisense и теми не. Если я вручную наберу dbo.Комната, подчеркнуто, с ошибкой
недопустимое Имя объекта ' dbo.Номер'..
Я что-то пропустил в настройке таблицы?
UPDATE: я пробовал обновить список таблиц (несколько раз)
13 ответов
попробуй:
редактировать ->IntelliSense ->Обновить Локальный Кэш
Это должно обновить данные, кэшированные Intellisense, чтобы обеспечить поддержку typeahead и обнаружение ошибок Перед выполнением.
Примечание: курсор должен находиться в Редакторе запросов, чтобы меню IntelliSense было видно.
после создания нового объекта SQL Server вновь созданный объект не обновляется в локальном кэше IntelliSence, и из-за этого он показывает красную линию под этим объектом. Поэтому вам просто нужно обновить локальный кэш SSMS IntelliSence и после его обновления,IntelliSence
автоматически добавит вновь созданный объект в кэш, и красная линия исчезнет. попробуйте это
Edit -> IntelliSense -> Refresh Local Cache
или Ctrl + Shift + R
в моем случае кэш IntelliSense перечислял информацию об объекте для совершенно другой базы данных. Если я нажму кнопку "новый запрос" в SSMS, он откроет запрос к моему каталогу по умолчанию на сервере, и этот редактор запросов всегда будет использовать только эту базу данных. Обновление кэша ничего не изменило. Перезапуск SSMS ничего не изменил. Изменение базы данных ничего не изменило.
Я закончил создание запроса, щелкнув правой кнопкой мыши по базе данных, я на самом деле хотел использовать и выбрать "новый запрос" из этого контекстного меню. Теперь SSMS использует правильные объекты для IntelliSense.
вы уверены, что такая таблица существует?
вы обновили представление таблицы в Обозревателе объектов? Это можно сделать, щелкнув правой кнопкой мыши папку "таблицы" и нажав кнопку Ф5 ключ.
Вам также может понадобиться reresh кэш технологии IntelliSense.
Это можно сделать, следуя по маршруту меню: Edit - > IntelliSense - > обновить локальный кэш
решение:
- щелкните запрос меню
- затем нажмите "Изменить базу данных".
- выберите соответствующее имя базы данных.
убедитесь, что выбранная БД, где таблица. Я запускал сценарий на Master
. В моем случае, мне пришлось переключиться на hr_db
.
ошибка новичка, но, может помочь кому-то.
даже после установки SP3 в SQL Server 2008 Enterprise это все еще " проблема." Ctrl+ Shift+R как все говорят, решил эту проблему для меня.
та же проблема со мной, когда я использовал эту синтаксическую проблему.
синтаксис:
Use [YourDatabaseName]
Your Query Here
решено для SSMS 2016.
была аналогичная проблема, но Intellisense не было в меню редактирования.
что, казалось, исправить это включение и выключение Intellisens, щелкните правой кнопкой мыши на Редакторе SQL и нажмите "Intellisense включен". Щелкните правой кнопкой мыши снова на "Intellisense Enabled", чтобы снова включить его. Ctr Q, я также это делаю.
Это решило проблему, а также я знаю, что получить Intellisense в меню редактирования.
Я понимаю, что на этот вопрос уже ответили, однако у меня было другое решение:
Если вы пишете сценарий, в котором вы отбрасываете таблицы, не воссоздавая их, эти таблицы будут отображаться как отсутствующие, если вы попытаетесь ссылаться на них позже.
Примечание: это не произойдет со скриптом, который постоянно выполняется, но иногда легче иметь скрипт с запросами на повторение, чем вводить их каждый раз.
Мне просто нужно было закрыть SMSS и снова открыть его. Я попытался обновить локальный кэш, и это не сработало.