Я работаю над веб-проектом, где я должен получить (скажем, записи сотрудников). В некоторых случаях мне нужно получить одну запись, указав EmployeeID. В других случаях мне нужно получить несколько записей о сотрудниках, указав SectorID. Эта логика может быть расширена для охвата дополнительных сценариев: получение всех записей о сотрудниках, получение записей о сотрудниках по квалификации и т. Д.
Рекомендуется ли использовать одну хранимую процедуру, которая принимает переменное число параметров для обработки различных сценариев (использование значений по умолчанию, когда параметр не указан). Пример:
CREATE PROCEDURE [dbo].[GetEmployeeRecords]
(
@employeeID int = -1,
@sectorID int = -1
)
AS
BEGIN
SELECT EmployeeID,
EmployeeFirstName,
EmployeeLastName,
s.SectorName
FROM dbo.Employees e
INNER JOIN Sectors s ON e.SectorID = s.SectorID
WHERE (e.EmployeeID = @EmployeeID OR @EmployeeID = -1)
AND (e.SectorID = @SectorID OR @SectorID = -1)