Скажем, у нас есть хранимая процедура, которая принимает параметр @IsAllowed
, который является логическим значением, и в случае, если он прошел True
, я должен выбрать данные из двух таблиц A,B
(я буду использовать в моем случае Union ALL
) Остальное он прошел False
Я должен выбрать данные из одной таблицы A
... Я пишу это следующим образом:
Create PROCEDURE TestSP
(
@IsAllowed bit
)
AS
IF @IsAllowed = 1
BEGIN
Select ID, Username From A
Union ALL
Select ID, Username From B
END
ELSE
Select ID, Username From A
Это лучший способ сделать это? хотя в моем реальном случае SP имеет около 9 параметров, используемых в условии условия первого запроса, это означает, что я напишу первый запрос дважды и любое изменение в это я должен позаботиться о том, чтобы иметь одну и ту же копию в 2 разных местах