Sql server 2008 T-SQL中类似PHP的$$var(SQLServer2008)
是否有任何方法可以执行phpSql server 2008 T-SQL中类似PHP的$$var(SQLServer2008),sql-server-2008,tsql,Sql Server 2008,Tsql,是否有任何方法可以执行php$$var之类的操作 这将使变量的值成为变量名 我在谷歌上搜索了好几个小时,找不到任何能满足我需要的 谢谢 编辑: 目前我想要达到的目标与此类似 declare @table1 table(Name Varchar(100)) declare @table2 table(Name Varchar(100)) ... declare @table10 table(Name Varchar(100)) declare @int1 int set @int1 = 0 wh
$$var
之类的操作
这将使变量的值成为变量名
我在谷歌上搜索了好几个小时,找不到任何能满足我需要的
谢谢
编辑:
目前我想要达到的目标与此类似
declare @table1 table(Name Varchar(100))
declare @table2 table(Name Varchar(100))
...
declare @table10 table(Name Varchar(100))
declare @int1 int
set @int1 = 0
while @int1 < 10
begin
select @[table + @int1]
END
declare@table1表(名称Varchar(100))
声明@table2表(名称Varchar(100))
...
声明@table10表(名称Varchar(100))
声明@int1 int
设置@int1=0
而@int1<10
开始
选择@[table+@int1]
结束
由于问题中的示例不是有效的t-SQL,因此不清楚您是要选择@[table+@int1]
的值,还是从表中选择(即从[table+@int1]
中选择名称)-我在这里假设它是第二个值
一种方法是使用一个带有对行进行分类的指示符列的表:
declare @table table(Name Varchar(100), groupid int)
...
declare @int1 int
set @int1 = 0
while @int1 < 10
begin
select name from @table WHERE groupid = @int1
set @int1 = @int1 + 1
end
declare@table表(名称Varchar(100),groupid int)
...
声明@int1 int
设置@int1=0
而@int1<10
开始
从@table中选择名称,其中groupid=@int1
设置@int1=@int1+1
结束
否,T-SQL中没有等效项。使用动态SQL可能会达到类似的效果,但由于变量范围的问题,这可能会有问题。请考虑更新你的问题,你希望解决的问题的一些细节-很可能有一个替代的解决方案。