Sql 保存动态查询的结果

Sql 保存动态查询的结果,sql,dynamicquery,Sql,Dynamicquery,有没有办法做到这一点: CREATE TABLE #TempLocal (tmpBanner nvarchar(255) ) SET @Query = 'INSERT INTO #TempLocal (tmpBanner) SELECT TOP 1 F1 FROM '+ @dbTable_Dollar SELECT @Banner = tmpBanner FROM #TempLocal DROP TABLE #TempLocal; SELECT @Banner 基本上,我有一个动态表参数,我需

有没有办法做到这一点:

CREATE TABLE #TempLocal (tmpBanner nvarchar(255) )
SET @Query = 'INSERT INTO #TempLocal (tmpBanner) SELECT TOP 1 F1 FROM '+ @dbTable_Dollar
SELECT @Banner = tmpBanner FROM #TempLocal
DROP TABLE #TempLocal;
SELECT @Banner
基本上,我有一个动态表参数,我需要从第1列第1行获取值

谢谢,

KS

解决方案
您可以将动态查询的结果放在临时表上:

CREATE TABLE #TempLocal (tmpBanner nvarchar(255) )
SET @Query = 'SELECT TOP 1 F1 FROM '+ @dbTable_Dollar

INSERT INTO #TempLocal (tmpBanner)
EXEC(@Query)

SELECT @Banner = tmpBanner FROM #TempLocal
不过我建议您先看看。

解决方案
sql的什么实现?在SQL Server中,您可以使用带有可选输出参数的
sp_executesql
,谢谢,我找到了一种更好的方法来实现。
CREATE TABLE #TempLocal (tmpBanner nvarchar(255) )
SET @Query = 'SELECT TOP 1 F1 FROM '+ @dbTable_Dollar

INSERT INTO #TempLocal (tmpBanner)
EXEC(@Query)

SELECT @Banner = tmpBanner FROM #TempLocal
DECLARE @Banner nvarchar(255),
@chvSQL NVARCHAR(300)

SELECT @chvSQL = N'SELECT TOP 1 @Banner = [F1] from '+@dbTable_Dollar
EXEC sp_executesql @chvSQL, N'@Banner varchar(50) OUTPUT', @Banner OUTPUT