【发布时间】: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