我试图设置变量,其名称是在存储过程中动态:SQL:动态变量名
DECLARE @var01 varchar(50)
DECLARE @var02 varchar(50)
...
DECLARE @var30 varchar(50)
DECLARE @sql = varchar(max)
DECLARE @loopcnter INT
-- (Inside some loop where the loopcounter increments each iteration)
...
SET @sql = 'SET @var0'+CAST(@loopcntr AS Varchar)+'= '''+'somevalue'+''''
-- e.g.) SET @var01= 'somevale'
EXEC (@sql)
这并不工作,因为变量声明在不同范围的动态SQL 。
以这种方式动态设置变量的正确方法是什么?
你为什么需要名称是动态的?你试图解决的更大的问题是什么? –
你想达到什么目的?事实上,动态SQL有它自己的范围 – jazzytomato
您是否尝试过使用'@@'变量? – Kermit