2011-09-27 32 views
2

我從asp.net前端運行存儲過程,但時間很長。在後臺運行該事件的簡單方法是什麼?我的意思是,如果我關閉瀏覽器,我仍然希望我的存儲過程完成,而不是死掉。另外,我想在我的程序運行時在前端執行其他操作。任何好的解決方案?在後臺運行程序的簡單方法

回答

2

SQL Agent和Service Broker都可以做到這一點,儘管它確實需要您做一些工作。

1

在另一個線程就啓動它像這樣:

'Starts execution of the proc 
Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click 
     Dim t As New Threading.Thread(AddressOf DoWork) 
     t.Start() 
    End Sub 

Private Sub DoWork() 
     Using c As New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString) 
      c.Open() 
      Dim command = New SqlCommand("LongTest", c) 
      command.CommandType=Data.CommandType.StoredProcedure 
      command.CommandTimeout = 0 
      command.ExecuteNonQuery() 
     End Using 
    End Sub 

下面是我用我的測試SP:你的連接字符串,並呼籲在

create PROCEDURE dbo.LongTest 
AS 
BEGIN 
    WaitFor Delay '00:00:30' --wait for 30 seconds before doing anything 
    insert into TableImageTest(image) 
    values(null) 

END