Invalid object name '%.*ls'.
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, 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 Microsoft® SQL Server™ naming convention for database objects is:
[[[server_name.][database_name].][owner_name].]object_name
The default value for server_name is the current server and the default value for database_name is the current database. The default value for owner_name is the current user. Because owner_name 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 Transact-SQL Syntax Conventions.
This message can also occur when you reference a temporary table that was created with an EXECUTE statement.
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.
Or
For example, to determine the owner and type for the object named table_1, execute the following:
USE master
GO
SELECT TABLE_SCHEMA
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'table_1'
GO
If no rows are returned from this query, the object either resides in a different database or does not exist.
SELECT *
FROM user1.table_1
Although using fully qualified object names eliminates this problem, remember that including the fully qualified object name in an application might complicate the maintenance of the application. For example, if all references to a table include the database name, changing the database name could become difficult.
Or
USE database_1
Or
SELECT *
FROM database_1.user1.table_1
If you own the object or if the object is owned by the database owner, the owner name is not needed. For example:
SELECT *
FROM database_1..table_1
CREATE TABLE | SELECT |
Creating and Modifying a Table | sp_help |
Errors 1 - 999 | sysobjects |
EXECUTE | Transact-SQL Syntax Conventions |
Information Schema Views | USE |
Querying SQL Server System Catalogs |