选择是给我错误消息

时间:2015-08-31 10:38:36

标签: sql sql-server

以下两个都给了我错误消息Invalid object,但它们是正确的名称。任何想法可能是什么问题?

select * from TrainingDB.FileTables.employes
  

Msg 208,Level 16,State 1,Line 1   无效的对象名称' TrainingDB.FileTables.employes'。

select * from employes
  

Msg 208,Level 16,State 1,Line 1   无效的对象名称'雇员'。

我正在使用2014年开发版

更新 我断开连接,重新连接一个新的查询,这次是通过右键单击TrainingDB,而不是我之前做过的新查询的主要按钮,现在就是intellisense现在正在进行的选择*来自雇员现在可以工作。

谢谢大家,如果没有你的帮助,我可能会被困住几个小时。

3 个答案:

答案 0 :(得分:1)

看起来您正在错误的服务器上执行查询。因此,您可以检查执行查询的服务器。(假设您在问题中提到的数据库和表名称是正确的。

答案 1 :(得分:1)

检查数据库表名称拼写。并检查您正在使用的数据库。您可以通过

进行检查
  DatabaseName.dbo.tablename

你也应该在sql server management studio中使用Intellisense。为了避免这些问题。您可以在dbforge-sqlcomplete

下载它

答案 2 :(得分:1)

错误消息是直的。引擎在该本地PERIOD中找不到该表。

如果对象退出有疑问,可以试试这个片段:

use TrainingDB

GO

declare
 @columnName nvarchar(128) = N'MyColumnName'
,@tableName nvarchar(128) = N'employes'
,@schemaName nvarchar(128) = N'FileTables'


    select su.name, so.name--, sc.name
    from sys.sysusers su
    join sys.sysobjects so on so.uid = su.uid
--  join sys.syscolumns sc on sc.id = so.id
    where so.xtype = N'U'
    and su.name = @schemaName
    and so.name = @tableName
--  and sc.name = @columnName

正如您所看到的,这可用于测试架构,表格以及是否删除注释,即使列存在。

如果你仍然找不到对象,之前的答案已经指出了一些动机:错误的服务器,错误的数据库,错误的数据库版本(缺少表格),整理使对象名称区分大小写,错误拼写,缺乏权限等