У меня есть хранимая процедура с parameter1
и parameter2
SQL Server хранимые процедуры - рефакторинга
Внутри хранимой процедуры, я создаю временную таблицу
CREATE TABLE [dbo].#Temp
(
[Item_ID] [int] NOT NULL,
[Item] [nvarchar](255) NULL,
[FIELD_1] [float] NULL,
[FIELD_2] [float] NULL
CONSTRAINT [PK___Temp] PRIMARY KEY CLUSTERED
(
[Item_ID] ASC
)
Затем вставить значение в временную таблицу.
INSERT INTO [dbo].#Temp(
[Item_ID]
,[Item]
,[FIELD_1]
,[FIELD_2]
)SELECT DISTINCT
1
,'Item Description'
,(SELECT Field_Name FROM NewTable
WHERE Item_type = 'Middle'
AND param1 = @Parameter1
AND param2 = @Parameter2
AND STAFF_Type = 'Staff1'
AND Entity_Type = 'Entity1'
)
,(SELECT Field_Name FROM NewTable
WHERE Sch_type = 'High'
AND param1 = @Parameter1
AND param2 = @Parameter2
AND STAFF_Type = 'Staff1'
AND Entity_Type = 'Entity1'
)
INSERT INTO [dbo].#Temp(
[Item_ID]
,[Item]
,[FIELD_1]
,[FIELD_2]
)SELECT DISTINCT
2
,'Another Item Description'
,(SELECT Field_Name FROM NewTable
WHERE Item_type = 'Middle'
AND param1 = @Parameter1
AND param2 = @Parameter2
AND STAFF_Type = 'Staff1'
AND Entity_Type = 'Entity2'
)
,(SELECT Field_Name FROM NewTable
WHERE Sch_type = 'High'
AND param1 = @Parameter1
AND param2 = @Parameter2
AND STAFF_Type = 'Staff1'
AND Entity_Type = 'Entity2'
)
и др. И т. Д. Затем выберите значение из таблицы temp и отпустите таблицу temp.
Я не использовал UDF и задавался вопросом, может ли это быть реорганизованным, чтобы быть простым с использованием UDF. любой пример и/или предложения приветствуются.
Почему люди не обращаются к CTE, когда сталкиваются с проблемой? Они так решают. – ShellNinja