在动态 SQL 中使用 Temp 表中的值
Posted
技术标签:
【中文标题】在动态 SQL 中使用 Temp 表中的值【英文标题】:Using values from Temp table in Dynamic SQL 【发布时间】:2016-10-14 02:52:35 【问题描述】:我有一个记录很少的临时表。我需要将它们包含在我的动态 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 中包含临时表值。 我期待像
这样的动态SQLSelect name,age,sex from dbo.EmployeePension() where EmployeeID IN(Select EmployeeID in (100,101,102));
其中 (100,101,102) 是临时表中的值,name,age,sex 是 @fields 中的值。
【问题讨论】:
【参考方案1】:SET @SQL = @SQL + 'Select '+ @fields + ' ID from dbo.EmployeePension()'
SET @SQL = @SQL + ' WHERE EmployeeID IN'
SET @SQL = @SQL + '(Select EmployeeID from #temp4)'
EXEC ( @SQL )
【讨论】:
以上是关于在动态 SQL 中使用 Temp 表中的值的主要内容,如果未能解决你的问题,请参考以下文章
从一个表中选择一个逗号分隔的值,并使用 SQL Server 中的函数在另一个表中的 where 条件中使用它
如何在SQL Server 2012中动态替换表中的所有值?