Error 208

Severity Level 16

Message Text

Invalid object name '%.*s'.

Explanation

This error occurs when an object that does not exist is referenced. If the object exists, you might need to include the owner's name in the object name.

If the object is not owned by the user attempting to access it, and it is not owned by the database owner (DBO), all references to the object must include the owner's name. For example, if user1 creates a table called test, other users must use the name user1.test when they refer to the table.

The SQL Server naming convention for database objects is:

[[database.]owner.]object_name.column_name

The default value for database is the current database. The default value for owner is the current user. Because owner is part of the object name, it is possible for two different users to have tables with the same name in the same database (for example, user1.test and user2.test). For additional information about naming conventions, see the Microsoft SQL Server Transact-SQL Reference.

This message can also occur when you reference a temporary table that was created with an EXECUTE statement.

Action

The procedure for handling this error depends on what you know about the object indicated in the error message text.

The appropriate permissions must also be set to allow access to an object. If these permissions are not set, error 229 or 230 occurs.

If you do not know who owns the object

Or

For example, to determine the owner and type of the object, table_1, use the following:

select owner = user_name(uid), name, type
from sysobjects where name = 'table_1'

If no rows are returned from this query, the object either resides in a different database or does not exist.

If you do not own the object in question

Or

If the object does not reside in the database

Or

If a temporary table created with an EXECUTE statement is referenced