2014-09-12 36 views
0

它似乎有点讨厌,但我想知道是否有可能。其实我想打印几个变量的值。我可以多次编写print语句,但不是这样,我正在考虑使用while循环并编写一个可以逐个打印所有变量值的单个语句。间接打印标量变量的值 - Tsql

这是我想到的是:

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

declare @test1 as int 
select @test1 = 1234 

print '@'[email protected]+'1' 

声明print '@'[email protected]+'1'打印@test1这是确定。但是我要找的是,如果我可以使用相同的语句得到@test1的价值。

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

回答

0

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