2016-09-08 4 views
0

バックグラウンドで別のプロシージャを非同期で実行する必要があります。T-SQLを使用してバックグラウンドで別のプロシージャを実行する

procedure1:

CREATE PROCEDURE procedure1 
WITH EXECUTE AS OWNER 
AS 
BEGIN 

    //something happens here 

EXEC procedure2 

    //something happens here 
END 

プロシージャ2:

CREATE PROCEDURE procedure2 
WITH EXECUTE AS OWNER 
AS 
BEGIN 

WAITFOR DELAY '00:02' 
END 

私は最後までプロシージャ2を待たずに実行するprocedure1を必要としています。私は他の記事で、この答えを読んだ:

かつて私は仕事に格納 プロシージャをラップすることにより、これを達成しようとしたし、その後 sp_start_jobシステムSPを通じて手順で仕事を呼び出すがありました。 EXEC dbo.sp_start_job N'Job名 ';

でもわかりません。誰も私にそれを説明することはできますか?それは何か進んだように見えないので、私は私が望むものを達成することができません。

答えて

1

SQL Agent Jobの作成を参照しています。これは、スクリプトをサーバー上で実行するようにスケジューリングする最も簡単な方法です。通常は、時間、曜日、週など毎日実行する必要があるスクリプトを手動で実行する代わりに、自動的にエージェントジョブを実行して自動的に実行する必要があります。

ジョブズすべては、あなたのオブジェクトエクスプローラのSQL Server Agentセクションに住ん:

ジョブを作成したら、あなたはsp_start_jobを使用して手動で呼び出すことができます。ジョブを呼び出すときにジョブを実行させたい場合は、単にジョブを作成し、スケジュールを割り当てないでください。

+0

ありがとうございました。残念ながら私はSQL ServerのExpress版を持っているので、SQL Server Agentは使用できません。 – Artur

+0

@ArturこのSQL Serverは何を使用していますか?個人的なプロジェクトの場合は、フル装備のDevバージョン2016を無料で使用できます。 – iamdave

+0

@Arturこれは正確なコピーではありませんが、SQLの 'バックグラウンド'で何かを実行するというアイデアは、iamdaveが言っていることよりも好ましいでしょう。 SQL Expressを使用する必要がある場合の回避策は、代わりにWindowsタスクスケジューラを実行し、SQLバッチスクリプトを作成することです。だからここにスレッドがあります:http://stackoverflow.com/questions/7201061/how-to-create-jobs-in-sql-server-express-edition – djangojazz

関連する問題