我创建了一个存储过程,可以在存储过程节点下看到它,但是在尝试执行时找不到该过程。
在存储过程节点下,它被称为 dbo.CopyTable
exec CopyTable
CopyTable 未定义为红色,表示它不存在。为什么?
即使我右键单击该过程并说脚本存储过程作为执行对象 - 它生成的代码也带有红色下划线并且也找不到存储过程。
我创建了一个存储过程,可以在存储过程节点下看到它,但是在尝试执行时找不到该过程。
在存储过程节点下,它被称为 dbo.CopyTable
exec CopyTable
CopyTable 未定义为红色,表示它不存在。为什么?
即使我右键单击该过程并说脚本存储过程作为执行对象 - 它生成的代码也带有红色下划线并且也找不到存储过程。
确保选择的数据库包含存储过程CopyTable
USE YourDatabase
EXEC CopyTable
尝试运行您的 CREATE PROCEDURE。突出显示它,f5 它,然后确保它在您在其他地方调用它之前运行。
很可能您只是在查询窗口中的错误数据库中,您可以像这样指定数据库:
EXEC [yourDBName].dbo.CopyTable
阅读如何执行存储过程
考虑到您更新的问题:
即使我右键单击该过程并说脚本存储过程作为执行对象 - 它生成的代码也带有红色下划线并且也找不到存储过程。
如果您的存储过程无效,则可能会发生这种情况。请仔细检查 SPROC 的有效性并确保它引用的表存在等。
也许在您的程序中您不小心剪切粘贴了您的脚本名称 (dbo.CopyTable),比如...
SELECT * FROM dbo.CopyTable
WHERE ClientId = @ClientId
RETURN
然后,当您调用您的 proc 时,您会得到“无效的对象名称 dbo.CopyTable”,并假设 sql 无法找到存储的 proc ......这不是问题,它找到并运行 proc 但它实际上是一个问题过程。