2017-10-10 139 views
0

我需要一些幫助來弄清楚如何從asp.net mvc web應用程序啓動SQL Server代理作業。只需點擊一個按鈕即可開始作業。什麼是正確的做法?從asp.net mvc 4 web應用程序運行SQL作業

我剛剛安裝了hangfire,我試圖配置它,但我堅持下面的代碼。我在正確的軌道上?

任何線索都會非常有幫助。謝謝。

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作業。需要警告的是,運行該網站的帳戶的「身份」必須經過測試,以確定它是否可以啓動sql-server作業。 PS你學習Quartz.Net的速度越快,那麼你越會嘗試通過sql-server-job來欺騙所有東西。 – granadaCoder

+0

@STLDeveloper:一個sql服務器代理作業 – newbie

回答

0

您可以從Web應用程序上的一個按鈕,點擊執行存儲過程

存儲過程:

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 

在數據庫中創建該存儲過程,並通過作業名稱爲參數,或者可以在存儲過程中對作業名稱進行硬編碼,以防止意外執行其他SQL作業。

相關問題