Ниже приведен псевдокод моей текущей хранимой процедуры.Во-первых, у меня есть ОГРОМНЫЙ запрос, который создает временную таблицу.Затем у меня есть другие запросы внутри хранимой процедуры, которые запрашивают эту временную таблицу.
Моя цель - сделать хранимую процедуру более читабельной.ОГРОМНЫЙ запрос усложняет задачу, поскольку занимает много места.Я попытался создать отдельную хранимую процедуру для этого огромного запроса, чтобы создать временную таблицу, но временная таблица не может быть доступна за пределами этой другой хранимой процедуры.
Кто-нибудь знает более читаемый способ написания этого кода?Если мой вопрос не имеет смысла, я перефразирую его.Спасибо.
Alter Procedure spMyStoredProc
Begin
--Value of 1 for each param means I want to execute the query
@sqlQueryA Bit = 0,
@sqlQueryB Bit = 0,
@sqlQueryC Bit = 0
Select Columns
Into #MyTempTable
From **HUGE Query**
If @sqlQueryA = 1
Begin
Select * From #MyTempTable
End
Else If @sqlQueryB = 1
...
Else If @sqlQueryC = 1
Begin
Query something else from #MyTempTable
End
Else
Return
End
Ниже приведен побочный вопрос, который обсуждали мы с Эвальдасом Буйнаускасом в этой теме: я добавляю код ниже, который содержит встроенную табличную функцию.Мой огромный запрос имеет несколько локальных переменных.Ниже псевдокод.Код привел к ошибке.
CREATE FUNCTION fn_myFunction()
RETURNS TABLE
AS
RETURN
(
--Declaration is not allowed
Declare @myLocalVar As DateTime
Set @myLocalVar = '2019-01-10'
#HUGE Query
Where SomeColumn = @myLocalVar
)