看起来有点讨厌,但我想知道是否有可能。其实我想打印几个变量的值。我可以多次编写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
的值。
我希望所以我清楚地说出我的意思。
答案 0 :(得分:0)
这是不可能的。变量仅在声明范围内可见。如果在代码中生成变量名,则需要使用动态SQL语句。动态SQL语句在不同的范围内运行,因此原始变量不可用。您可以将值作为参数传递给动态SQL语句,但这需要对变量名进行硬编码。