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
テーブルをそれ自体に結合して、結果のクエリを作成し、挿入される一時テーブルから実行します。現在、結合の量を指定していますが、渡される別の整数値に基づいて動的に構築したいと考えています。結合の量は、この整数値と相関します。唯一の問題は、結合ごとに一意のエイリアスが必要であり、上記で使用して結果のクエリを作成することです。結合ごとにエイリアスをハードコーディングする必要をなくすために、動的エイリアスを使用することは可能ですか?