Error 208

Severity

16

Message text

%.*s not found. Specify owner.objectname  or use sp_help to check whether the object exists (sp_help may produce lots  of output).

Explanation

This error occurs when Adaptive Server tries to use an object name that does not exist. If the object does exist, you may need to include the owner’s name in the object name.

If the object is not owned by the user who is attempting to access it, and it is not owned by the database owner (“dbo”), all references to it must include the owner name. For example, if “user1” creates a table called test, all other users must prefix the table name with the owner name “user1” every time they refer to the object. The complete name in this example is user1.test. This requirement is based on Adaptive Server’s naming convention for database objects:

<database>.<owner>.<object_name>.<column_name> 

The default value for <database> is the current database and the default value for <owner> is the current user. Remember that the owner is part of the object name and it is therefore possible for two different users to have two different tables with the same <object_name> in the same database, for example, user1.test and user2.test. Refer to the Transact-SQL User's Guide for more details on naming conventions.

Temporary tables reside in tempdb and are automatically dropped when the user process or Adaptive Server connection that created them is exited. Furthermore, users cannot share temporary tables, even if they are created by the “dbo.”

Including the fully qualified object name in an application may complicate the maintenance of the application. For example, if all references to a table include the database name, changing the database name could become quite difficult.

Action

To resolve this error, refer to one of the following sections, depending on how much you know about the object in question.


If you do not know who owns the table

Use the sp_help procedure to display the owner (if the procedure is executed with no parameters), or query the system catalog to determine the object's owner and type. For example, to determine the name and type of the object table1, use the following query:

1> select owner = user_name(uid), name, type 
2> from sysobjects where name = "table1" 
3> go

If no rows are returned by this query, the object may reside in a different database or may not exist at all.


If you do not own the object in question

Avoid this error using either procedure:


If the object does not reside in the database

The error can be avoided by:

The owner name is not needed if you own the object or if it is owned by the “dbo.” For example:

1> select * from database1..table1 
2> go

The appropriate permissions must also be set to allow access to this object. If these permissions are not provided, a 229 or 230 error results.

Versions in which this error is raised

All versions