Трябва да напиша динамична опорна точка на базата на сложна заявка и искам да използвам израз на обща таблица, за да създам набора от данни, върху който трябва да създам опорната точка, за да я запазя извън динамичния sql и да я компилирам
Проблемът ми е, че не знам дали мога да използвам CTE в SET, където обгръщам динамичния SQL, който трябва да изпълня.
да видим кода:
WITH DatiCTE AS
(
SELECT ...
)
SET @DynamicPivotQuery =
N'SELECT IdActivity, ' + @PivotSelectColumnNames + '
FROM DatiCTE
PIVOT(SUM(NumOfDays)
FOR Area IN (' + @PivotColumnNames + ')) AS PVTTable'
WHERE 1 = 1
EXEC sp_executesql @DynamicPivotQuery
По този начин получавам грешка близо до SET @DynamicPivotQuery =
Ако заменя SET с SELECT, съхранената процедура се компилира, но ако я стартирам, получавам:
Invalid object name 'DatiCTE'