2017-02-01 19 views
1

두 개의 관련 저장 프로 시저를 실행하기 위해 SQL Server 2012에서 작업을 만들려고합니다.SQL Server 작업 두 개의 저장 프로 시저 하나씩 실행하거나 동시에 실행 하시겠습니까?

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