"找不到存储过程<procedure name>"

tha*_*ude 1 sql sql-server stored-procedures

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

程序:

USE ResourceRequest
GO

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

我可以执行该程序,但"[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
Run Code Online (Sandbox Code Playgroud)

Mar*_*ith 5

您没有在其中指定显式模式,create因此它在默认模式中创建它,看起来它不是dbo.

使用

CREATE PROCEDURE dbo.resource_lookup @ProjectName nvarchar(100)=null
AS
/* ... */
Run Code Online (Sandbox Code Playgroud)

确保根据需要创建它.


但听起来这是一个intellisense警告而不是运行时错误.

因此,使用Ctrl+ Shift+ R刷新智能感知缓存所以拿起你的新添加的对象.

或者,如果这不起作用(一些SSMS插件劫持此组合)通过菜单选项执行 Edit -> IntelliSense -> Refresh Local Cache

菜单截图