Sql server недопустимое имя объекта

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

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

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

недопустимое Имя объекта ‘ dbo.Номер’..

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

UPDATE: я пробовал обновить список таблиц (несколько раз)

13 ответов

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

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

Примечание: курсор должен находиться в Редакторе запросов, чтобы меню IntelliSense было видно.

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

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

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

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

Читайте также:  Индукционная варочная панель hansa bhi 68014 отзывы

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

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

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

Вам также может понадобиться reresh кэш технологии IntelliSense.

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

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

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

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

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

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

Необходимо получить Supplier.Name вес всех товаров которого максимальный.

Msg 208, Level 16, State 1, Line 31 Недопустимое имя объекта "NewTable".

2 ответа 2

NewTable это алиас выборки в конкретном запросе, к нему нельзя обращаться еще раз как к таблице.

Можно сделать например так, используя CTE:

Или так, используя оконные функции:

А на стандартном SQL, без расширений типа CTE или оконных функций боюсь только так:

Случился переезд бухгалтерской базы из 2.хх в 3.хх. База распухла до безобразия. В файловом режиме работать с файликом на 2Гб не вариант. Для начала, конечно, 1с-ники сказали, что машины в бухгалтерии полное ГЭ, новые нужны. i5 и 16Gb памяти минимум. И мониторы 22". Тогда все будет лЁтать. Ага, конечно.

Читайте также:  Iconbit xds7 3d mk2

Все равно все свелось к переползанию на трех-звенную архитектуру: клиент-сервер преприятия-SQL. Сервер в конторе уже есть. Машины бухгалтеров проапгрейджены. Осталось сервер предприятия поднять и сделать backup боевой базы и restore на сервер предприятия. Справился. Но выскакивает ошибка и интернет-поддержка перестала фурыкать (надо было не забыть дать доступа к интернету для сервера предприятия).

Гугление привело к информации о том что этот "косяк" в коде 1с. Желтые его признали, но когда исправят — не понятно. В более свежих версиях косяк тоже присутствует. Глюка тянется с осени 2016 года. Так что установка обновлений — вообще не вариант. Откатываться на старую версию — 1с-ники встали в позу.

Мои коллеги увидев сообщение о ругани 1с на Native Client сказали — поставь его на СЕРВЕР ПРЕДПРИЯТИЯ. Не поможет, тогда еще и на сервер с SQL.

Идем на MS и ищем Microsoft® SQL Server® 2008 R2 Feature Pack.
Открываем пункт "Инструкции по установке".
Мотаем вниз до Microsoft® SQL Server® 2008 R2 Native Client
Выбираем sqlncli.msi нужного типа.
Ставим.
Забываем про бухгалтеров еще на некоторое время.

UPD. В августе вышел новый релиз платформы 8.3.10.2561. Обновление помогло. Будьте внимательны: на сервер ставим 64bit (иначе в rphost утекает память и все становится грустно), на рабочие станции, вне зависимости от версии Windows, платформу на 32bit. На 64bit платформе у меня перестали стартовать драйвера кассовой техники. Тех.поддержка 1с дословно ответила следующее: 64-разрядная платформа является бета-версией и на ней многие драйвера не работают. Всё становится интереснее и интереснее.