Объявите переменную перед определением общего табличного выражения CTES, как показано ниже, потому что за CTE должен следовать один оператор SELECT, INSERT, UPDATE или DELETE, который ссылается на некоторые или все столбцы CTE.
DECLARE @execution_result varchar (100) ;
WITH CTES AS
(
И установите значение переменной как:
select @execution_result = execution_result from CTES
Также, чтобы сохранить выполнение кода до тех пор, пока не будет выполнено условие прерывания, которое здесь [execution_result] is <> 'Running'
, мы можем инкапсулировать всю логику в цикле While
как:
SET NOCOUNT ON;
--Declare all variables
DECLARE @execution_result varchar (100) ;
--Define an infinite loop
WHILE 1=1
BEGIN
WITH CTES AS
(
--All the logic goes here
)
select @execution_result = execution_result from CTES
--check exit condition here
IF @execution_result = 'Running'
Begin
WAITFOR DELAY '00:00:30'
CONTINUE;
End
Else
Begin
BREAK;
End
END;
Надеюсь, этот псевдокод поможет !!