Я работаю над веб-проектом, где мне нужно получить (скажем) записи сотрудников. В некоторых случаях я должен получить одну запись, предоставив 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)
Статья потрясающая! Бесконечно благодарен! – Max
, если вы прочтете статью, вы увидите, что нет простого и/или правильного ответа. как вы справляетесь с этим, все зависит от непосредственной ситуации и компромиссов, которые вы готовы сделать. –