保存动态查询的结果

时间:2012-01-13 19:50:21

标签: 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

基本上,我有一个动态表参数,我需要从第1列第1行获取值。

感谢,

KS

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

2 个答案:

答案 0 :(得分:1)

您可以将动态查询的结果放在临时表中:

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

虽然我建议你先看一下this link

答案 1 :(得分:1)

解决方案

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