我重命名了一个表,因为在evry'select'中我得到了所有列的'Invalid object name'。
我选择了我需要的输出,但为什么我也会收到错误?
这是我的简单选择...
SELECT [Importance]
,[Color]
,[NotificationName]
FROM [dbo].[Alerts]
答案 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
。