【问题标题】:"could not find stored procedure <procedure name>"“找不到存储过程 <过程名称>”
【发布时间】:2016-07-07 20:19:05
【问题描述】:

我创建了一个简单的过程,它将为我提供包含类似关键字的表条目。

程序:

USE ResourceRequest
GO

CREATE PROCEDURE resource_lookup @ProjectName nvarchar(100)=null
AS
SELECT * 
FROM [dbo].Resource_Request
WHERE [Project Name] LIKE @ProjectName + '%'
GO

我可以执行该程序,但似乎有问题 “[dbo].[resource_lookup]”因为找不到?我目前已登录到测试服务器,可以在“存储过程”文件夹中看到该过程吗?是什么导致了这个问题?

    USE [ResourceRequest]
GO

DECLARE @return_value int

EXEC    @return_value = [dbo].[resource_lookup]
        @ProjectName = N'mutually'

SELECT  'Return Value' = @return_value

GO

【问题讨论】:

    标签: sql sql-server stored-procedures


    【解决方案1】:

    您没有在 create 中指定显式架构,因此它会在您的默认架构中创建它,看起来它不是 dbo。

    使用

    CREATE PROCEDURE dbo.resource_lookup @ProjectName nvarchar(100)=null
    AS
    /* ... */
    

    确保它是按需要创建的。


    但这听起来像是一个智能感知警告而不是运行时错误。

    所以使用 Ctrl+Shift+Rrefresh the intellisense cache,这样它就会拾取您新添加的对象。

    或者,如果这不起作用(一些 SSMS 插件劫持了这种组合),请通过菜单选项Edit -&gt; IntelliSense -&gt; Refresh Local Cache

    【讨论】:

    • 尽管进行了更改,但我仍然收到相同的错误。我重命名了程序,但红线不断出现。 :(
    • @thatdude 如果您谈论的是智能感知错误而不是运行时错误,您只需要刷新缓存即可。
    • 红线将一直存在,直到您刷新 IntelliSense 的缓存 (--R)。如果您实际上正在运行它并收到该错误,那么它就是另一回事了。
    • 哇,我觉得很尴尬,我无法弄清楚。智能感知错误消失了。谢谢大家的帮助。
    猜你喜欢
    • 2011-04-04
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多