My Dynamic sql return Nth column which is not known but i have to stored this data into #tmp table which is not getting possible.
DECLARE @Columns as VARCHAR(MAX),@SQL VARCHAR(MAX),@SPID VARCHAR(MAX)
SELECT @Columns =
COALESCE(@Columns + ', ','') + QUOTENAME(Broker)
FROM
( SELECT DISTINCT Broker
FROM tblOutputDetl_csmtuner where Ticker='AHEXY' AND TRIM(Broker)<>''
) AS B
ORDER BY B.Broker
SET @SQL ='SELECT * INTO ##Tmp1_'+@SPID+ ' FROM (SELECT * FROM
(
SELECT
LineItem,
Broker,
ItemValue_NoFormat
FROM
tblOutputDetl_csmtuner where Ticker=''AHEXY''
) t
PIVOT(
Max(ItemValue_NoFormat)
FOR Broker IN ('+@Columns+')
) AS pivot_table ) x'
SELECT * INTO #Tmp1 FROM EXEC(@SQL)
hence my dynamic sql return non deterministic column that is why i used Select * into #Tmp1 table from FROM EXEC(@SQL)
but i am getting error.
at last i store the result into Global Temporary table.
here is working code
DECLARE @Columns as VARCHAR(MAX),@SQL VARCHAR(MAX),@SPID VARCHAR(MAX)
SELECT @Columns =
COALESCE(@Columns + ', ','') + QUOTENAME(Broker)
FROM
(SELECT DISTINCT Broker
FROM tblOutputDetl_csmtuner where Ticker='AHEXY' AND TRIM(Broker)<>''
) AS B
ORDER BY B.Broker
SELECT @SPID=CAST(@@SPID AS VARCHAR)
EXEC('DROP TABLE IF EXISTS ##Tmp1_'+@SPID)
SET @SQL ='SELECT * INTO ##Tmp1_'+@SPID+ ' FROM (SELECT * FROM
(
SELECT
LineItem,
Broker,
ItemValue_NoFormat
FROM
tblOutputDetl_csmtuner where Ticker=''AHEXY''
) t
PIVOT(
Max(ItemValue_NoFormat)
FOR Broker IN ('+@Columns+')
) AS pivot_table ) x'
EXEC(@SQL)
EXEC('select * from ##Tmp1_'+@SPID)
EXEC('DROP TABLE IF EXISTS ##Tmp1_'+@SPID)
please discuss few ways by which i can store dynamic sql result into #temporary table where i will use select * into instead of insert into #tmp table.
looking for guide line. thanks