如果您的存储过程中有 100 次出现“PRINT”,那么在调试非调试时是否有一种很好的方法可以将它们全部打开/关闭?
我可以添加一个变量@isdebug = 1
然后,做类似的事情
IF @isdebug = 1 PRINT @yourvar
然后@isdebug
根据您的需要将其设置为 0 或 1。有没有更好的方法来做到这一点?
如果您的存储过程中有 100 次出现“PRINT”,那么在调试非调试时是否有一种很好的方法可以将它们全部打开/关闭?
我可以添加一个变量@isdebug = 1
然后,做类似的事情
IF @isdebug = 1 PRINT @yourvar
然后@isdebug
根据您的需要将其设置为 0 或 1。有没有更好的方法来做到这一点?
不,这也是我在 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
这个想法的一个扩展是设置一个控制字符串。这给了我们更多的选择,而不是开或关。
例如:存储过程参数声明
(@Debug varchar(5), -- use bit wise control for debugging, currently 5 levels.
驱动测试/调试块的简单子字符串。
if substring(@Debug, 1, 1) = '1'
对于测试运行,您可以为 @Debug 输入“10001”,以便显示“级别”1 调试(即初始化),并且仅显示您正在测试/调试的代码子部分的“级别”5 调试。
您也可以通过使用数值(即 2-9)来扩展这个想法。但这可能太过分了。