为什么表重命名后所有列都无效?

时间:2014-01-26 14:47:38

标签: sql sql-server

我重命名了一个表,因为在evry'select'中我得到了所有列的'Invalid object name'。

我选择了我需要的输出,但为什么我也会收到错误?

这是我的简单选择...

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

2 个答案:

答案 0 :(得分:6)

看起来您正在使用SQL Server Management Studio。我怀疑如果你尝试它会运行你的查询,只是智能感知不知道表名已经改变。

尝试 Ctrl + Shift + R 刷新缓存或Edit -> Intellisense -> Refresh Local Cache

每次执行架构更改时都需要执行此操作。

答案 1 :(得分: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

还要确保您位于正确的数据库中,在查询下方运行以找出警报所属的数据库:

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

获得数据库名称后,在查询开头添加USE DATABASENAME,或者使用DATABASENAME.dbo.Alerts