2017-02-01 17 views
1

Я хочу создать JOB в SQL Server 2012, чтобы выполнить две связанные хранимые процедуры.В SQL Server Jobs Две хранимые процедуры Выполните один за другим или одновременно?

Exec my_First_Procedure 
Exec my_Second_Procedure 

Если я создаю работу, как выше, второй один начать выполнение после того, как первый один завершен, или оба запросы выполняются одновременно?

Помогите мне найти его. Спасибо, совет.

+2

Они выполняются последовательно. Если первый сбой, второй не выполняется. –

ответ

6

T-SQL - это скрипт язык. Операторы выполняются последовательно. На самом деле это касается почти всех компьютерных языков. Обычно вам приходится прилагать определенные усилия для параллельного выполнения действий.

Если первый оператор не работает, то второй оператор не выполняется.

У SQL Server есть механизмы для параллельной работы. Один из способов довольно сложный, используя функциональность очереди сообщений. Вы можете прочитать о очередности сообщений here. Или существуют различные блоги по теме асинхронного исполнения, например, это one.

Другой вариант - использовать рабочие места. Просто запланируйте два задания для запуска в одно и то же время.

+0

Спасибо, если первый оператор занимает много времени, второй инициирует выполнение или ожидает выполнения первого оператора. – DineshDB

2

Вы создаете одну процедуру Хранилища для вызова двух процедур и вызова с работы. Оба SP - это выполнение в рамках нового задания 1 SP даже сбой одного или успеха.

create procedure job1 
as 
begin try 
    begin try 
     exec my_First_Procedure; 
    end try 
    begin catch 
     select ERROR_MESSAGE() as messages; 
    end catch 

    begin try 
     exec my_Second_Procedure; 
    end try 
    begin catch 
     select ERROR_MESSAGE() as messages; 
    end catch 

    select 'Success' as messages; 
end try 
begin catch 
    select ERROR_MESSAGE() as messages; 
end catch 

 Смежные вопросы

  • Нет связанных вопросов^_^