是否可以在存储过程的执行过程中输出所有当前变量值的列表?在批处理/存储过程的执行中输出范围变量值TSQL
对于上下文,当存储过程抛出错误以帮助解决问题时,很高兴知道什么变量值。当然,您可以手动将此日志记录与硬编码的变量值放在一个catch块中,但这并不干净或不可转移。
您不能使用sys.parameters(即使只是执行参数),因为动态SQL不起作用。是否有内置的变量或sys表格存储当前范围的变量,这些变量可以在执行过程中输出?
BEGIN TRY
DECLARE @Variable1 VARCHAR(64) = 'test'
-- Do stuff
END TRY
BEGIN CATCH
EXEC SpCustomLog @VariableValues = @Variable1 -- hardcoded
EXEC sp_execute 'SELECT @Variable1' -- not in scope/lost in build
END CATCH
AFAIK,这不能在T-SQL中完成。我很好奇如何在其他编程语言中统一记录当前作用域中的所有变量。 –