2014-09-22 138 views
0

我正在開發一個項目,其中一個部分處理付款,如果付款成功,它會在數據庫中設置一個標誌。現在,我想要實現的是,我必須每秒鐘或每兩秒持續查詢數據庫中的特定標誌30秒。如果30秒後我沒有看到數據庫中的標誌,我會告訴用戶付款不成功。我如何實現這個有時限的查詢?我的意思是我如何繼續運行一個特定的查詢30秒?SQL Server中的時間限制查詢

謝謝。

+1

我想你應該從你的應用程序方面,而不是從SQL Server端 – Sam 2014-09-22 04:09:05

+1

數據庫本身不能幫助你在這裏你需要例如PHP一些代碼或任何語言是您正在使用來實現它做到這一點創建你的店鋪。只需在您的預設語言中設置一個while循環,超時時間爲1秒,並且更好的是2秒鐘,並向您的數據庫發出另一個查詢,並總計30秒,以「中斷」退出循環,並通知用戶付款失敗。 ? – Steini 2014-09-22 04:10:18

回答

0
DECLARE @CurrentTime datetime 
SET @CurrentTime=GETDATE() 
WHILE DATEDIFF(ss,@CurrentTime,GETDATE())<31 
BEGIN 
<Your Code Here> 
END 

您可能還需要使用WAITFOR DELAY在你的代碼來執行每1或2秒

0

,你可以在一個循環中檢查狀態更改使用waitfordelay。

declare @flag int = 0 

    select @flag = flag from MyTable with (nolock) 
    declare @i int =0 

    while @flag <> 0 and @i <30 
    begin 

     WAITFOR DELAY '00:00:01' 
     select @flag = flag from MyTable with (nolock) 
     set @i = @i +1 
    end 
+0

請在發佈的答案中添加一些說明,這將有助於他人快速理解。 – 2014-09-22 05:12:08