2017-10-10 18 views
0

asp.net mvc WebアプリケーションからSQL Serverエージェントジョブを開始する方法を理解するための助けが必要です。ボタンのクリックでジョブを開始する必要があります。それを行う正しい方法は何ですか?asp.net mvc 4 WebアプリケーションからSQLジョブを実行する

私はhangfireをインストールしましたが、私はそれを設定しようとしていますが、私は以下のコードに固執しています。正しい軌道にいるのですか?

すべてのリードが非常に役に立ちます。ありがとう。

CREATE PROCEDURE RunJob 
     @JobName NVARCHAR(100) 
    AS 
    BEGIN 
     -- SET NOCOUNT ON added to prevent extra result sets from 
     -- interfering with SELECT statements. 
     SET NOCOUNT ON; 

     EXEC msdb.dbo.sp_start_job @JobName 
    END 
    GO 

は、データベースにこのストアドプロシージャを作成し、ジョブ名を渡す:あなたは、ボタンのクリックでWebアプリケーションから

ストアドプロシージャをストアドプロシージャを実行することができます

public class MyController : Controller 
{  
public void ExecJob(int Id) 
    { 
    BackgroundJob.Enqueue(() => UpdateDB(Id)); 
    } 

public void UpdateDB(Id) 
    { 
    //how to start the sql job 
    } 
} 
+0

"SQLジョブ"とはどういう意味ですか?ストアドプロシージャを実行するか、実際のSQL Serverエージェントジョブを実行することを意味しますか? – STLDeveloper

+0

私はあなたの最善の策は、SQL Serverのジョブを呼び出すストアドプロシージャを記述することだと思う。 Webサイトを実行しているアカウントの「ID」は、SQL Serverのジョブを開始できるかどうかをテストする必要があることに注意してください。 PS Quartz.Netのようなものをすばやく学習すればするほど、SQL Serverの仕事を通してすべてを見せつけようとする方が良いでしょう。 – granadaCoder

+0

@STLDeveloper:SQL Serverエージェントジョブ – newbie

答えて

0

他のSQLジョブが誤って実行されないように、ストアドプロシージャのジョブ名をハードコードすることができます。

関連する問題