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)