我遇到了问题:
我有一个数据库连接,我在其上运行存储过程.这个相同的连接用于更早地创建所述存储过程.
当我尝试调用给定的存储过程时,稍后,我收到以下消息:
找不到存储过程'dbo.yaf_prov_upgrade'.
问题是它确实存在于数据库中.而且还有它出现在SQL Server Profiler上的事实.
RPC:已完成exec [dbo].[yaf_prov_upgrade] @ PreviousVersion = 46,@ NewVersion = 46 .Net SqlClient数据提供者Nico Matrix\Nico
我想知道特定查询会抛出这样的异常的原因是什么,即使它存在,它被调用,并且调用到达数据库.
它不能成为连接的问题,因为它已经执行了其他存储过程.它不是程序的问题,因为它确实存在,实际上是完全相同的应用程序,相同的网页,创建它并将其放在那里.
更新:忘了提到我使用了集成安全性,我确实在数据库上使用应用程序连接的同一用户运行SP,我运行它没有问题.
那么什么能有呢?
gbn*_*gbn 15
您的RPC仅完成意味着提交给SQL Server的批处理正确并已完成.这并不意味着存储过程运行并执行正常.
这将是(不争论,检查)中的一种:
为了确保这东西都是一样的
SELECT
@@SERVERNAME,
SUSER_SNAME(),
DB_NAME(),
USER_NAME(),
OBJECT_ID('dbo.yaf_prov_upgrade')
Run Code Online (Sandbox Code Playgroud)
如果存储过程在该数据库中不存在或您没有权限,则OBJECT_ID将为NULL .