如果您的存储过程中出现100次“PRINT”,那么在调试非调试时是否有一种很好的方法可以打开/关闭它们?
我可以添加变量@isdebug = 1
以后再做类似的事情
IF @isdebug = 1 PRINT @yourvar
然后根据您的需要将@isdebug
设置为0或1。
有更好的方法吗?
答案 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)来扩展这个想法。但这可能太过分了。