0

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

我可以添加一个变量@isdebug = 1

然后,做类似的事情 IF @isdebug = 1 PRINT @yourvar

然后@isdebug根据您的需要将其设置为 0 或 1。有没有更好的方法来做到这一点?

4

2 回答 2

3

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

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
于 2011-02-25T15:42:06.977 回答
1

这个想法的一个扩展是设置一个控制字符串。这给了我们更多的选择,而不是开或关。

例如:存储过程参数声明

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

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

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

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

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

于 2011-12-13T04:09:17.723 回答