间接打印标量变量的值--Sql

时间:2014-09-12 10:43:55

标签: sql-server

看起来有点讨厌,但我想知道是否有可能。其实我想打印几个变量的值。我可以多次编写print语句,但是我想使用while循环并编写一个可以逐个打印所有变量值的语句。

这就是我的想法:

declare @test as nvarchar(4)
select @test  = 'test'

declare @test1 as int
select @test1 = 1234

print '@'+@test+'1' 

语句print '@'+@test+'1'打印@test1即可。但我正在寻找的是,如果我可以使用相同的语句获得@test1的值。

我希望所以我清楚地说出我的意思。

1 个答案:

答案 0 :(得分:0)

这是不可能的。变量仅在声明范围内可见。如果在代码中生成变量名,则需要使用动态SQL语句。动态SQL语句在不同的范围内运行,因此原始变量不可用。您可以将值作为参数传递给动态SQL语句,但这需要对变量名进行硬编码。