Sql server 将变量名设置为另一个变量的值

Sql server 将变量名设置为另一个变量的值,sql-server,variables,Sql Server,Variables,是否可以根据另一个变量的值声明变量名 见下面的代码: declare @x int = 1 declare @y nvarchar(255) while (@x) < (select rd.TimeBucket.value( 'count(/buckets/bucket)', 'nvarchar(255)' ) from DIM_FM_SR_REPORT_DEFINITION rd) begin set @y = '@bucket' + cast(@x as nvarchar(2

是否可以根据另一个变量的值声明变量名

见下面的代码:

declare @x int = 1
declare @y nvarchar(255)

while (@x) < (select rd.TimeBucket.value( 'count(/buckets/bucket)', 'nvarchar(255)' ) from DIM_FM_SR_REPORT_DEFINITION rd)
begin
    set @y = '@bucket' + cast(@x as nvarchar(2)) 
    declare @y as 

    set @x = @x + 1;
end

这里似乎有些不对劲。如果你需要一个动态数量的变量,这是一个很好的迹象,表明你需要重新考虑如何处理更大的问题。在sql中,它是一个表。您正在与数据库服务器对话。那些桌子真的很好用。考虑使用其中之一。T-SQL不以任何方式支持动态变量,无论是形状还是形式(除了在动态SQL中,但仅在您正在构建的一个范围内)。您想要12个不同的变量吗?或者仅仅是这个列表?也许我用错误的方式处理了更大的问题。基本上,用户将在网页上输入信息,这些信息将存储为XML。由于用户可以输入x个数量的选项,因此它不可能是带有一定数量变量的staic。如果你需要一个动态数量的变量,这是一个很好的迹象,表明你需要重新考虑如何处理更大的问题。在sql中,它是一个表。您正在与数据库服务器对话。那些桌子真的很好用。考虑使用其中之一。T-SQL不以任何方式支持动态变量,无论是形状还是形式(除了在动态SQL中,但仅在您正在构建的一个范围内)。您想要12个不同的变量吗?或者仅仅是这个列表?也许我用错误的方式处理了更大的问题。基本上,用户将在网页上输入信息,这些信息将存储为XML。由于用户可以输入x个数量的选项,因此它实际上不可能是带有设置数量的变量的staic。
bucket1
bucket2
bucket3
bucket4
bucket5
bucket6
bucket7
bucket8
bucket9
bucket10
bucket11
bucket12