使用Dynamic SQL中Temp表中的值

时间:2016-10-14 02:52:36

标签: sql-server dynamic-sql

我有一个临时记录很少的临时表。我需要将它们包含在我的Dynamic SQL中。我正在尝试做这样的事情

SET @SQL=@SQL + 'Select '+ @fields + ' ID from dbo.EmployeePension()' 
SET @SQL = @SQL + ' WHERE EmployeeID IN'
SET @SQL= @SQL + '(Select EmployeeID from' + #temp4 + ')'
EXEC @SQL

其中#temp4是我的临时表。 我实际上从一个单独的表中拉出@fields,然后从函数中检索相同的列。

有人可以帮助我了解如何在动态SQL中包含临时表值。 我期待像

这样的动态SQL

从dbo.EmployeePension()中选择名称,年龄,性别,其中EmployeeID IN(在(100,101,102)中选择EmployeeID);

其中(100,101,102)是临时表中的值,名称,年龄,性别是@fields中的值。

1 个答案:

答案 0 :(得分:0)

SET @SQL = @SQL + 'Select '+ @fields + ' ID from dbo.EmployeePension()' 
SET @SQL = @SQL + ' WHERE EmployeeID IN'
SET @SQL = @SQL + '(Select EmployeeID from #temp4)'
EXEC ( @SQL )