日期:2014-05-17  浏览次数:20635 次

SQL Server 2008找不到存储过程
现在有两个用户,一个sa,一个是自已建的用户 her;
另外有数据库EBS_TS
其中,数据库的EBS_TS的架构是自已建的一个sdb;
当使用存储过程的时候,必须要
USE [EBS_TS]
exec [sdb].[我的存储过程],否则便提示找不到存储过程,
这个非常奇怪,因为以前是可以直接exec [我的存储过程]这样的,
无论用哪个ID登进去都一样,sa和sdb,搞不懂这个是怎么回事。

PS:因为框加那边是印度开发的,没有源码,二次开发使用存储过程,
现在一打开就是找不到存储过程,而框架的源码肯定是没有使用:
[dbo].存储过程   或sdb.存储过程 这样形式的,只是单纯的调用存储过程
所以必须解决这个问题,望大牛们给点思路。

------解决方案--------------------
首先你要确认是哪个存储过程?它是否真的不存在?
如果已经成为确认存储过程已经在,那么就找用户的访问权限,就是访问数据的用户是否在访问存储过程的权限?

------解决方案--------------------
修改存储过程所属架构.

 alter schema dbo transfer sdb.[存储过程名]

------解决方案--------------------
修改存储过程所属架构后,应该就可以直接exec [存储过程名]了.