Вы выполняете 2 запроса, которые требуют динамического синтаксиса - я не проверял, но я думаю, что вы можете попробовать что-то вроде этого:
--Declare Variables
DECLARE @ColumnNames NVARCHAR(MAX) = NULL
DECLARE @SQL NVARCHAR(MAX)
-- First dynamic query
SET @SQL = N'
SELECT @ColumnNames += QUOTENAME(Period) + '',''
FROM [STOKVIS LIVE].[dbo].[SR_CONS_Consumption1year] ;';
--Execute dynamic query
EXEC sp_executesql @sql, N'@ColumnNames NVARCHAR(MAX)', @ColumnNames;
SET @ColumnNames = LEFT (@ColumnNames,LEN(@ColumnNames)-1)
--second dynamic query
SET @SQL = N'
SELECT [No_] ,[Group],[Lakeview],[Name],[class.],[Stock], [Period]
FROM [STOKVIS LIVE].[dbo].[SR_CONS_Consumption1year]
PIVOT (
SUM ([Qty])
FOR [Period]
IN( ' + @ColumnNames + ')
)
AS PivotTable ;';
EXEC sp_executesql @sql, N'@ColumnNames NVARCHAR(MAX) OUT', @ColumnNames OUT;
SELECT @TransType
EDIT
В прошлом OUT
добавлено EXEC
для определения того, что они являются выходными переменными, поэтому вы можете использовать SELECT @TransType
для получения результата