Если вы вынуждены использовать хранимую процедуру для реализации того, что вы просили, вы можете просто сохранить найденное корневое значение в переменной и передать его.
Существует нет более простого способа, если вы не используете UDF (пользовательскую функцию), как уже упоминали другие.
Это один из самых простых ответов при использовании хранимой процедуры , поскольку нельзя напрямую передать хранимую процедуру в оператор UPDATE
. Нет такой интерполяции, как в других языках, таких как C # или Java.
declare @root int
-- 1) Return the root through output parameter
exec find_root @id, @root out
-- or make the sproc to return the root value
exec @root = find_root @id
UPDATE [dbo].[alerts]
SET [created_in_variant] = @root