2014-09-12 19 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語句,但這需要對變量名進行硬編碼。