在SQL中构建动态自连接语句

时间:2013-10-02 17:46:54

标签: sql sql-server join alias

   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

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

0 个答案:

没有答案