Недопустимое имя объекта sql server - но таблицы перечислены в списке таблиц SSMS

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

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

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

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

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

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

Ответ 1

Попробуйте:

EditIntelliSenseRefresh Local Cache

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

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

Ответ 2

Ctrl + Shift + R также обновляет intellisense в студии управления 2008.

Ответ 3

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

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

enter image description here

Ответ 4

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

enter image description here

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

Ответ 5

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

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

Ответ 6

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

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

Вам также может потребоваться перезагрузить кеш Intellisense.

Это можно сделать, следуя маршруту меню: Изменить → IntelliSense → Обновить локальный кеш

Ответ 7

Решение:

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

Что это.

Ответ 8

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

Ответ 9

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

Синтаксис:

Use [YourDatabaseName]
Your Query Here

Ответ 10

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

Имел подобную проблему, но Intellisense не был в меню Правка.

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

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

Ответ 11

Вы попробовали: щелкните правой кнопкой мыши базу данных и нажмите "Обновить"

Ответ 12

Я понимаю, что на этот вопрос уже был дан ответ, однако у меня было другое решение:

Если вы пишете script, где вы отбрасываете таблицы без их повторного создания, эти таблицы будут отображаться как отсутствующие, если вы попытаетесь ссылаться на них позже.

Примечание. Это не произойдет с script, который постоянно запускается, но иногда бывает проще иметь script с запросами повторного ввода, чем набирать их каждый раз.

Ответ 13

Мне просто пришлось закрыть SMSS и снова открыть его. Я попытался обновить локальный кэш, и это не сработало.

Ответ 14

Я столкнулся с проблемой с: ODBC и SQL-Server-аутентификация в ODBC а также Firedac-соединение

Решение : Я должен был установить Param MetaDefSchema на имя пользователя sqlserver: FDConnection1.Params.AddPair('MetaDefSchema', self.FDConnection1.Params.UserName);

Википедия говорит: MetaDefSchema = Имя схемы по умолчанию. Код времени разработки >> исключает & lt; & lt; !! имя схемы из объекта SQL-Server-Authenticatoinname, если оно равно MetaDefSchema.

без настройки автоматический кодер создает: dbname.username.tablename → неверное имя объекта

С установкой MetaDefSchema в sqlserver-username: dbname.tablename → работает!

Смотрите также embarcadero-doc по адресу: http://docwiki.embarcadero.com/RADStudio/Rio/en/Connect_to_Microsoft_SQL_Server_(FireDAC)

Надеюсь, это поможет кому-то еще..

С уважением, Лутц