小编Bre*_*t D的帖子

动态 SQL 中的打印参数

我已经将动态 SQL 用于许多任务并不断遇到相同的问题:打印动态 T-SQL 语句中使用的变量的值。

例如:

Declare @SQL nvarchar(max), @Params nvarchar(max), @DebugMode bit, @Foobar int
select @DebugMode=1,@Foobar=364556423

set @SQL='Select @Foobar'
set @Params=N'@Foobar int'

if @DebugMode=1 print @SQL
exec sp_executeSQL @SQL,@Params
    ,@Foobar=@Foobar
Run Code Online (Sandbox Code Playgroud)

上面代码的打印结果就是“Select @Foobar”。有没有办法动态打印正在执行的sql的值和变量名?或者在打印时,用实际值替换参数以便 SQL 可以重新运行?

我曾尝试创建一两个函数来完成类似的事情,但涉及数据类型转换、模式匹配截断问题和非动态解决方案。我很好奇其他开发人员如何在不手动打印每个变量的情况下解决这个问题。

sql-server dynamic-sql

10
推荐指数
1
解决办法
5341
查看次数

标签 统计

dynamic-sql ×1

sql-server ×1