#tmp
- это локальная временная таблица, например, она когда-либо видна только соединению, которое ее создало, и как только это соединение исчезло, то же самое относится и к временной таблице.Так что DROP TABLE #tmp
в конце действительно не нужно - таблица будет автоматически удалена SQL Server.
Эта временная таблица была создана здесь:
SELECT * INTO #tmp FROM dbo.fnGetCategories(@prewin7)
, поэтому она будет содержать любыестрок, которые вернет набор результатов из хранимой функции dbo.fnGetCategories
.
SELECT
c.RootCategoryId CategoryId,
SUM(c.DiagnosticCount) DiagnosticCount
FROM #tmp c
Здесь данные выбираются из этой временной таблицы с псевдонимом таблицы c
, поэтомуc.RootCategoryId
должен быть столбцом этой временной таблицы, и, таким образом, он должен быть одной из строк, возвращаемых из хранимой функции, вызываемой выше.