У меня есть хранимая процедура, которая содержит оператор Insert
.
create procedure Sp1
(@oName varchar(50), @Address varchar(100))
as
begin
insert into Tb1(Name, Address)values(@oName, @Address)
end
Из приведенной выше хранимой процедуры я хочу получить условие из результата другой хранимой процедуры. Со следующим действием:
select count(Branch) cBranch from Tb2 group by Branch
Итак, если cBranch
есть zero
. Тогда execute Sp1
больше ничего не делайте.
Нужен совет пожалуйста. Действительно ценится.
Sp1 необходимо обновить с условием, если нулевой результат из «скажем» Sp2. Sp2 для подсчета ветвей.
Попробуй это:
CREATE PROCEDURE SP_NAME
AS
DECLARE @Cndtn INT
SELECT @Cndtn=COUNT(Branch) FROM Tb2 GROUP BY Branch
IF(@Cndtn>0)
BEGIN
EXEC Sp1 @oName,@Address
END
ELSE
BEGIN
SELECT 'Else Clause' --Add an another SP name
END
Привет, спасибо большое дружище! Действительно ценится. Теперь у меня есть подсказка, чтобы обновить свой Sp на основе вашего ответа. :)
Создать еще один хранимый процесс, который выбирает из ветки, оценивает количество результатов, возвращает его, если меньше 1, иначе вызывает sp1? Откуда в этом случае вызов sp1 получает свои параметры? Почему вам нужно передавать параметры, которые вообще не нужны, процедуре, которая выполняет выборку, чтобы в конечном итоге выполнить вставку в таблицу, которая затем возвращает ее количество? Просто вернуть 0 в качестве счета? и если вы получите 0 обратного отсчета, сделать вставку?