2014-01-26 52 views
1

我重命名了一个表,因为在evry'select'中我得到了所有列的'无效对象名'。为什么所有列在表重命名后都无效?

我从我的选择得到我需要的输出,但为什么我也得到一个错误呢?

这是我简单的SELECT ...

SELECT [Importance] 
     ,[Color] 
     ,[NotificationName] 
    FROM [dbo].[Alerts] 
+1

请问您可以发表您的查询吗? –

+2

另外 - 您使用的是什么RDBMS? – Mureinik

+0

原始表格名称是什么以及你重命名了什么? –

回答

6

它看起来像你使用SQL Server Management Studio中。我怀疑你的查询会在你尝试的时候运行,只是intellisense不知道表名已经改变了。

尝试Ctrl键 + + - [R刷新缓存或可替代地Edit -> Intellisense -> Refresh Local Cache

每次执行模式更改时都需要执行此操作。下面的查询

+0

你的意思是在我的浏览器中刷新现金? – user2560521

+0

SSMS中没有。执行'SELECT * FROM dbo.Alerts',如果它工作,尽管红色下划线,那么问题肯定是你需要刷新智能感知。 – OGHaza

0

运行,以确认你的表已被重命名,并在你的选择查询指定的确切列名:

select * from sys.all_columns where object_id = OBJECT_ID('Alerts')

另外,您可以执行以下查询,以确认Alerts table存在

IF (EXISTS (SELECT * 
       FROM INFORMATION_SCHEMA.TABLES 
       WHERE TABLE_SCHEMA = 'dbo' 
       AND TABLE_NAME = 'Alerts')) 
BEGIN 
    PRINT 'Alerts exists' 
END 

还要确保你在正确的数据库中,运行下面的查询来找出Alerts所属的数据库:

SELECT TABLE_CATALOG 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = 'dbo' 
AND TABLE_NAME = 'Alerts' 

一旦获得数据库名称,请在查询开始处添加USE DATABASENAME,或者您可以使用DATABASENAME.dbo.Alerts

+0

我做了表格存在 – user2560521

+0

您是否在正确的数据库中,请在查询开始时尝试添加'USE DATABASENAME'。检查第二个查询的输出以查找数据库。 –

相关问题