【问题标题】:Reasons why a stored procedure is not found未找到存储过程的原因
【发布时间】:2013-12-05 09:16:31
【问题描述】:

我刚刚使用CREATE PROCEDURE sp_MYSP创建了一个简单的存储过程

在我的测试数据库上,我可以使用它(作为sa 用户)

EXEC sp_MYSP

但在我输入时在生产数据库上

EXEC sp_MYSP 

在管理工作室中,我看到sp_MYSP 带有红色下划线。

但我在可编程性/存储过程树中看到了 sp。

我也试过跑

GRANT EXECUTE ON sp_MYSP  TO PUBLIC

即使是用户,我也不应该需要它。

有什么线索吗?

【问题讨论】:

  • 您是否尝试过使用数据库和模式来调用它? EXEC DatabaseName.schema.sp_MYSP
  • 是的,我试过了,我忘了提。谢谢
  • 看到红色波浪线不代表对象不存在,你真的可以执行吗?
  • 不,我无法执行,即使我找到了解决方法:drop 和 create 似乎工作。但仍然不清楚为什么会出现问题
  • 旁注:您应该为您的存储过程使用sp_ 前缀。微软有reserved that prefix for its own use (see Naming Stored Procedures),你确实会在未来某个时候冒着名称冲突的风险。 It's also bad for your stored procedure performance。最好只是简单地避免 sp_ 并使用其他东西作为前缀 - 或者根本不使用前缀!

标签: sql-server stored-procedures sql-server-2008-r2


【解决方案1】:

我的错。我意识到我犯了一个愚蠢的错误。

我有 2 个实例调用:

.\MyInstance2008R2

.\Instance2008r2

非常相似的名字。

我只是在第一个中创建对象并尝试从第二个中访问它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 2010-10-25
    相关资源
    最近更新 更多