Поделиться через


MSSQLSERVER_208

Область применения: SQL Server

Сведения

Атрибут Значение
Название продукта SQL Server
ИД события 208
Источник событий MSSQLSERVER
Компонент SQLEngine
Символическое имя SQ_BADOBJECT
Текст сообщения Недопустимое имя объекта «%.*ls».

Описание

Не удается найти указанный объект.

Возможные причины

Возможны следующие причины возникновения этой ошибки.

  • Объект указан неверно.

  • Объект не существует в текущей базе данных или в указанной базе данных.

  • Объект существует, но пользователю не может быть предоставлен к нему доступ. Например, может оказаться так, что пользователь не имеет разрешений для доступа к объекту или объект создан в инструкции EXECUTE, но доступ к нему осуществляется вне области действия инструкции EXECUTE.

Действие пользователя

Проверьте следующую информацию и исправьте инструкцию соответствующим образом.

  • Имя объекта записано правильно.

  • Контекст текущей базы данных является правильным. Если не указано имя базы данных для объекта, то объект должен существовать в текущей базе данных. Дополнительные сведения о настройке контекста базы данных см. в разделе USE (Transact-SQL).

  • Объект существует в системных таблицах. Чтобы проверить существование таблицы или другого объекта на уровне схемы, отправьте запрос к представлению каталога sys.objects. Если объект отсутствует в системных таблицах, значит он был удален или у пользователя отсутствуют разрешения на просмотр метаданных объекта. Дополнительные сведения о разрешениях на просмотр метаданных объекта см. в статье Настройка видимости метаданных.

  • Объект содержится в применяемой по умолчанию схеме пользователя. Если его там нет, имя объекта нужно указывать в двухкомпонентном формате: имя_схемы.имя_объекта. Следует отметить, что скалярные функции должны всегда вызываться с использованием по меньшей мере двухкомпонентного имени.

  • Учет регистра в параметрах сортировки базы данных.

    Если в базе данных используются параметры сортировки с учетом регистра, то имя объекта должно согласовываться по регистру с именем объекта в базе данных. Например, если определенный объект имеет имя MyTable в базе данных с параметрами сортировки с учетом регистра, запросы, в которых этот объект именуется как mytable или Mytable, будут возвращать ошибку 208, так как имена объектов не согласуются.

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

    SELECT collation_name FROM sys.databases WHERE name = 'database_name';  
    

    Аббревиатура CS в имени параметров сортировки указывает, что учитывается регистр символов. Например, значение Latin1_General_CS_AS определяет параметры сортировки с учетом регистра и с учетом диакритических знаков. Значение CI указывает, что в параметрах сортировки не учитывается регистр.

  • Пользователь имеет разрешение на получение доступа к объекту. Чтобы проверить, какие разрешения имеет пользователь для доступа к объекту, можно воспользоваться системной функцией Has_Perms_By_Name.

См. также

USE (Transact-SQL)
Настройка видимости метаданных
HAS_PERMS_BY_NAME (Transact-SQL)