我在SQL Server Management Studio 2005中执行了存储过程,但之后我没有检查存储过程是否成功执行。 我用下面的命令:
exec [Stored Procedure name] '[param1]' , '[param2]'
现在,我想找到:
a)如果存储过程成功执行
b)执行结果是什么
我找不到任何相关文件。 你能帮忙吗?
答案 0 :(得分:0)
如果这些只是SELECT,则只能在SSMS的Result Pane或调用存储过程的应用程序中看到输出。在服务器中,将加载(缓存)记录。
要查看SQL Server内存中的缓存内容,请参阅此页面 What is cached by sql server
答案 1 :(得分:0)
这可以让您了解最后一次调用SP的时间
SELECT qt.[text] AS [SP Name],
qs.last_execution_time,
qs.execution_count AS [Execution Count]
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt
WHERE qt.dbid = db_id() -- Filter by current database
AND qt.text LIKE '%YourSPName%'
除非SP具有WITH RECOMPILE
,否则它应该在缓存中(如果正在使用它)(除非发生冲洗缓存的事情)。但是,我认为,找到返回的结果后,事实是不可能的。您可以重新执行SP并通过运行跟踪进行检查,我猜
答案 2 :(得分:0)
重写查询大概是插入/更新作为选择并输入您输入的参数。如果表上存在由存储过程更新的审计字段,则这种方式可以。否则,只要您具有所需的权限,查询dm_exec_query_stats就可以了。
答案 3 :(得分:0)
另一种方法是将sp的整个主体放入try-catch
块。在尝试的末尾,insert into
审核/日志表中您感兴趣的一些值(例如:scope_identity用于插入,纯文本如'Done!',一些时间戳到看看它何时运行等等。)在 catch 中,你会做同样的事情,但根据你的需要使用不同的值:ERROR_MESSAGE, ERROR_NUMBER
,'发生错误!'等等。有很多方法可以“审核”存储过程,您只需要选择一个最适合您需求的方法。