2つの関連するストアドプロシージャを実行するために、SQL Server 2012でJOBを作成したいとします。SQL Serverジョブ内2つのストアドプロシージャ1つずつまたは同時に実行しますか?
Exec my_First_Procedure
Exec my_Second_Procedure
上記のようにJOBを作成すると、2番目のものは最初のものが完了した後に実行を開始するか、または両方のクエリが同時に実行されますか?
わかりやすくするためにアドバイスをありがとう。
2つの関連するストアドプロシージャを実行するために、SQL Server 2012でJOBを作成したいとします。SQL Serverジョブ内2つのストアドプロシージャ1つずつまたは同時に実行しますか?
Exec my_First_Procedure
Exec my_Second_Procedure
上記のようにJOBを作成すると、2番目のものは最初のものが完了した後に実行を開始するか、または両方のクエリが同時に実行されますか?
わかりやすくするためにアドバイスをありがとう。
T-SQLは、スクリプト言語です。ステートメントは順次実行されます。実際、これはほぼすべてのコンピュータ言語に当てはまります。通常は、物事を並行して実行するために何らかの努力を払わなければなりません。
最初の文が失敗した場合、2番目の文は実行されません。
SQL Serverには、物事を並行して実行する仕組みがあります。 1つの方法は、メッセージキュー機能を使用して、やや複雑です。メッセージキューhereについて読むことができます。また、非同期実行の対象となるブログには、oneなど、さまざまなブログがあります。
ジョブを使用することもできます。同時に実行する2つのジョブをスケジュールするだけです。
ありがとうございます。最初のステートメントに時間がかかる場合は、2番目のステートメントが実行を開始するか、最初のステートメントの実行を待機します。 – DineshDB
コール2プロシージャとコールからジョブに1つのストア・プロシージャを作成します。両方のSPは新しいジョブ1内で実行されます.SPは1つまたは成功しなくても失敗します。
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
これらは順番に実行されます。最初のものが失敗した場合、2番目のものは実行されません。 –