SQL调试打印

时间:2011-02-25 15:37:39

标签: sql sql-server-2005 debugging sqlcmd

如果您的存储过程中出现100次“PRINT”,那么在调试非调试时是否有一种很好的方法可以打开/关闭它们?

我可以添加变量@isdebug = 1

以后再做类似的事情 IF @isdebug = 1 PRINT @yourvar

然后根据您的需要将@isdebug设置为0或1。 有更好的方法吗?

2 个答案:

答案 0 :(得分:3)

不,这也是我在过程中所拥有的

IF @debug = 1
BEGIN
print 'Something'
--or insert into a log table if you need the rows of a temp table 
--or the results of a calculation
END

答案 1 :(得分:1)

这个想法的扩展是建立一个控制字符串。这为我们提供了更多选择,而不是开启或关闭。

例如: 存储过程参数声明

   (@Debug     varchar(5),  -- use bit wise control for debugging, currently 5 levels.

用于驱动测试/调试块的简单子字符串。

if substring(@Debug, 1, 1) = '1' 

对于测试运行,您可以为@Debug输入'10001',以便“level”1调试显示(即初始化),并且只有“level”5调试显示您正在测试/调试的代码的子部分。 / p>

你也可以通过使用数字值(即2-9)来扩展这个想法。但这可能太过分了。