簡體   English   中英

觸發器是否異步(在SQL Server 2008 R2的asp.net命令對象上)

[英]Are triggers asynchronous (on asp.net command object for SQL Server 2008 R2 )

我還需要在ASP.net Web應用程序的SQL Server Update調用中進行一些其他(存檔)數據處理。

我想獨立於調用sql update命令的Web線程運行該命令(使用SQL Server 2008 R2的命令對象調用(非異步))。

我閱讀的所有文檔似乎都表明SQL Server觸發器將不會異步運行,這意味着我的Web線程將等待更新以及觸發器完成執行。 有人可以確認嗎? 在我為檔案sql命令實施獨立的異步調用之前,我想知道。

觸發器在與觸發觸發器的SQL操作相同的上下文和相同的事務中運行,例如,在與UPDATE語句相同的上下文和事務中運行。 直到執行觸發器,事務(以及來自ASP.NET代碼的調用)才會終止。 這就是為什么觸發器應謹慎使用的主要原因之一,如果使用觸發必須非常小,靈活和快速的- 不要做任何繁重的工作和廣泛的處理,並在觸發外部調用!

觸發器是事務的一部分,最終導致調用該觸發器。 如果您希望事務外發生某些事情,則可能需要填充一個字段(archivestatus,默認值為0),該字段指出記錄未存檔,然后運行一個經常運行的作業(時間取決於您記錄的數量)需要處理的時間以及需要將數據存檔的時間)來存檔尚未存檔的記錄的分鍾,然后更新該字段。 如果記錄有更改,您可能還需要觸發器來將存檔的記錄表單更新為未存檔狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM