簡體   English   中英

.NET+SQL Server 2005 - 如何回滾事務但保留日志

[英].NET+SQL Server 2005 - How to rollback transaction but keep the log

我們有一個同時具有 .NET 和 SQLServer 組件的系統。 .NET 組件負責啟動進程並將對存儲過程的調用包含在事務中。

該過程主要使用數據庫上的存儲過程完成,這些過程都寫入我們自己的日志表。

現在,問題是在 .NET 代碼中啟動的事務將包含在數據庫代碼中使用的所有其他事務,如果其中一個子事務回滾,則日志表將消失。

有沒有辦法保留日志,回滾其他所有內容?

提前致謝。

使用表變量來存儲錯誤:這不受事務的影響

或者在 procs 中使用 SET XACT_ABORT ON 隱式回滾並在錯誤后記錄

Transaction SavePoints 可以幫助您嗎?

這正是數據庫級別的解決方案

保存點提供了一種回滾部分事務的機制。 您可以使用 SAVE TRANSACTION savepoint_name 語句創建一個保存點。 稍后,您執行 ROLLBACK TRANSACTION savepoint_name 語句以回滾到保存點,而不是回滾到事務的開始。

您也可以參考SqlTransaction.Save Method for a C# 解決方案,希望這正是您正在尋找的:

在事務中創建可用於回滾事務的一部分的保存點,並指定保存點名稱。

暫無
暫無

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

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