Quantcast
Channel: SQLServerCentral » SQL Server 2014 » Development - SQL Server 2014 » Latest topics
Viewing all articles
Browse latest Browse all 3145

Pass table variable to exec SQL Server

$
0
0
I am trying to write this stored procedure but I have trouble passing result of temp table (or table variable) to EXEC(@query) task:I also used table variable (see commented area) but not luck.I want the result of @colsUnpivot inside some variable so that I can pass that to my next segment of code where currently I am using @TEMP1.Please copy and paste this code into your query window to get more understanding. [code="sql"]DECLARE @colsUnpivot AS NVARCHAR(MAX) DECLARE @query AS NVARCHAR(MAX) DECLARE @Table_Name as Varchar(200) DECLARE @transaction_Table NVarchar(500) SET @Table_Name = 'opd_scholar' SET @transaction_Table = 'opd_scholar_transaction' --DECLARE @TEMP TABLE(colsUnpivot varchar(max)) CREATE TABLE #TEMP (colsUnpivot varchar(max)) SELECT @colsUnpivot = 'SELECT STUFF ( ( SELECT '', ''+ QUOTENAME(InTab.COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS InTab WHERE InTab.TABLE_NAME = OutTab.TABLE_NAME ORDER BY InTab.ORDINAL_POSITION FOR XML PATH(''''), TYPE ).value(''.'',''VARCHAR(MAX)'' ) , 1,1,SPACE(0)) FROM INFORMATION_SCHEMA.COLUMNS OutTab WHERE TABLE_NAME = '''+ @Table_Name +''' GROUP BY OutTab.TABLE_NAME' --INSERT INTO @TEMP (colsUnpivot) INSERT INTO #TEMP (colsUnpivot) EXEC(@colsUnpivot) PRINT @colsUnpivot --SELECT colsUnpivot FROM @TEMP SELECT colsUnpivot FROM #TEMP DECLARE @TEMP1 NVARCHAR(MAX) = 'SELECT colsUnpivot FROM #TEMP' --PRINT @TEMP SET @query = 'INSERT INTO '+ @transaction_Table +' ( unitid,institution,city,state,zip,code_name,lkp_value) SELECT unitid,institution,city,state,zip,code_name,lkp_value FROM ( SELECT unitid,institution,city,state,zip, '+ @TEMP1+' FROM '+@Table_name+') AS cp UNPIVOT (lkp_value for code_name IN ('+@TEMP1+') ) AS up' PRINT @Query --PRINT @Query1 EXEC(@query) DROP TABLE #TEMP[/code]

Viewing all articles
Browse latest Browse all 3145

Trending Articles