0
   Declare @alias as varchar(10)
     set @alias = 'fk2'
     insert into #Queries(Query, ExecuteOrder)
     select top 1 'delete ' + fk1.TableFrom  + ' from ' + fk1.TableFrom
     + ' join ' + @alias.TableFrom + ' on ' + fk1.TableFrom+'.'+fk1.FK_Column + ' = ' + fk2.TableFrom + '.ID' 
     + ' join ' + fk3.TableFrom + ' on ' + fk2.TableFrom+'.'+fk2.FK_Column + ' = ' + fk3.TableFrom + '.ID'
     + ' join ' + fk4.TableFrom + ' on ' + fk3.TableFrom+'.'+fk3.FK_Column + ' = ' + fk4.TableFrom + '.ID'
     + ' Where ' + fk4.TableFrom + '.' + fk4.FK_Column + ' = ' + @value
     ,@i
     from #FK fk1
     join #fk As @alias on @alias.TableFrom = fk1.TableTo
     join #fk fk3 on fk3.TableFrom = fk2.TableTo
     join #fk fk4 on fk4.TableFrom = fk3.TableTo

我将一个表连接到自身以构建一个结果查询,然后从插入的临时表中执行。我目前正在指定连接的数量,但希望根据传入的另一个整数值动态构建它们。连接的数量将与这个整数值相关。唯一的问题是我需要为每个连接创建一个唯一的别名,然后在上面使用它来构建生成的查询。是否可以使用动态别名来消除对每个连接的别名进行硬编码的需要?

4

0 回答 0