无法执行存储过程

时间:2013-02-20 15:05:25

标签: sql database stored-procedures sql-server-express

我已经创建了一个存储过程并且可以在存储过程节点下看到它,但是当尝试执行它时却找不到该过程。

在存储过程节点下,它被称为dbo.CopyTable

exec CopyTable 

CopyTable未定义为红色,表示它不存在。为什么呢?

即使我右键单击该过程并将脚本存储过程称为执行 - 它生成的代码带有红色下划线并且无法找到存储过程。

5 个答案:

答案 0 :(得分:3)

确保所选数据库包含存储过程CopyTable

USE YourDatabase
EXEC CopyTable

答案 1 :(得分:0)

尝试添加dbo并选择正确的数据库

USE databaseName
GO

EXEC dbo.CopyTable
GO

答案 2 :(得分:0)

您很可能只是在查询窗口中的错误数据库中,您可以像这样指定数据库:

EXEC [yourDBName].dbo.CopyTable

阅读如何Execute a Stored Procedure

考虑更新后的问题:

  

即使我右键单击该过程并说出脚本存储过程   执行时 - 它生成的代码用红色和斜面加下划线   找到存储过程。

如果您的存储过程无效,可能会发生这种情况。请仔细检查SPROC的有效性,并确保它所引用的表格等等。

答案 3 :(得分:0)

尝试运行您的CREATE PROCEDURE。突出显示它,f5它,然后确保它在其他地方调用它之前运行。

答案 4 :(得分:0)

也许在您的过程中,您不小心剪切了脚本名称(dbo.CopyTable),说了类似...

SELECT * FROM dbo.CopyTable
WHERE ClientId = @ClientId
RETURN

然后,当您调用proc时,将得到“无效的对象名称dbo.CopyTable”,并假定sql在查找存储过程时遇到了麻烦...这不是问题,它可以找到并运行proc,但实际上是过程中出现问题。