好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

MSSQL存储过程的调试指南及调试方法

“MSSQL存储进程调试指南”, 很多人可能感到困扰。虽然 SQL 语句可以很方便地被简单封装以便快速运行,从而解放双手,但存储进程的开发和调试多是一项枯燥的任务,如果不恰当的调试技能,可能会影响数据库的性能。

对MSSQL存储进程的调试,我们将会介绍5种方法:

第一种方法,使用PRINT语句输出中间进程及结果。

例如,我们可使用PRINT语句输出中间变量和结果:

DECLARE @TestVar INT;

SET @TestVar = 1;

PRINT '@TestVar =' + cast(@TestVar as varchar(50));

第二种方法,使用RAISERROR语句输出正告信息,RAISERROR可以将一些有价值的调试消息加入到存储进程代码中,从而帮助开发者监控程序的流程。

例如:

BEGIN TRY

    RAISERROR('Exiting Storedprocedure', 0, 1);

END

END TRY

BEGIN CATCH

    RAISERROR('Raise Error in Storedprocedure', 0, 1); 

END CATCH

第三种方法,使用SET STATISTICS 将统计信息输出到消息栏。SQL Server 具有统计功能,可以把统计信息输出到消息栏中的SQL Query Analyzer窗口,可以得到更多的信息,来辅助调试和肯定问题。

例如:

USE AdventureWorks

GO

SET STATISTICS IO ON

SELECT *

FROM Person.Contact

第四种方法,使用 SET NOCOUNT ON/OFF,以保证存储进程每次运行只返回实际查询结果。SET NOCOUNT ON/OFF可以有效制止存储进程每次运行时增加 DONE_IN_PROC 的消息,避免消息有序履行及收到有关DONE_IN_PROC消息时可能失去统计信息。

例如:

SET NOCOUNT ON 

SELECT * FROM LineItem 

SET NOCOUNT OFF 

第五种方法,在临时表中缓存中间结果,很容易看到表中的结果,也能够直接使用查询来查看缓存表中的信息。

例如:

SELECT * INTO #Temp

FROM LineItem

SELECT * FROM #Temp

以上是对调试MSSQL存储进程几种方法的介绍,通过这些方法,我们可以有效减低存储进程开发和调试的难度。


查看更多关于MSSQL存储过程的调试指南及调试方法的详细内容...

  阅读:58次