我正在尝试使用命令
更改现有存储过程ALTER'name_of_stored“procedure'
然而,名称以红色突出显示,表示它是无效对象。我能够成功执行该命令但是我想知道为什么SQL Server 2008 R2会将其记录为错误。
答案 0 :(得分:79)
这是SSMS,而不是SQL Server。如果它是数据库引擎的错误,你就会知道它(它不会成功执行命令)。
您需要刷新智能感知缓存(Ctrl + Shift + R)。或者你可以去编辑 - >智能感知 - >刷新本地缓存。
答案 1 :(得分:6)
使用CREATE PROCEDURE
创建存储过程,而不是ALTER PROCEDURE
。
答案 2 :(得分:5)
智能感知不会像创建新对象那样快速刷新。您需要刷新缓存(Ctrl + Shift + R)。或者,也许,不要依赖Intellisense,只有在执行失败时才会担心。
答案 3 :(得分:0)
我有同样的问题,问题是我从存储过程中有一个select语句,其名称与表名相似,所以不是
select * from Table_Test
我在存储过程中写了这个
select * from Proc_Test --selecting from Stored proc, yikes!!
也许这有帮助
答案 4 :(得分:0)
我遇到了同样的问题,并看到了大量可能的答案,其中一些非常具有异国情调。不幸的是,在找到适合我的方法之前,我没有看到这个页面。我想我会添加这个,即使我相信它与刷新Intellisense一样。我知道我已经完成了我的工作,因为尽管存在错误,存储过程仍能正常工作,所以我最终认为它不是真正的'错误。
我退出SSMS并重新输入,并且不再出现无效对象名称错误。我认为也刷新了Intellisense。
答案 5 :(得分:0)
就我在SQL Server 2014 Express上的情况而言,存储过程名称值显示此错误消息
无效的对象名称“SP_NAME”
即使存储过程已经创建并成功执行。但在启用IntelliSense后,错误被删除,每个存储过程查询都正常工作。