我正在嘗試在 sql server 上模擬一個故意的死鎖,在那里我可以測驗一段可以重試的代碼。需要一個我可以執行的查詢/SP/Func,稍后此查詢失敗并顯示 1205/deadlock 并觸發我的重試邏輯。
約束: - 在單個客戶端 n 單個會話中。(在單個會話中讀取元資料 n 鎖定自身,可能是)
嘗試成功:-mocking 自定義 SQL 例外 n 成功恢復。- 多執行緒方法。
現在,需要一個在單個會話中執行此操作的 SQL 組件。
編輯:重新定義問題以獲得更好的建議。
uj5u.com熱心網友回復:
這是目前可能的。
以下代碼使自身死鎖
BEGIN TRAN
CREATE TYPE dbo.OptionIDs AS TABLE( OptionID INT PRIMARY KEY )
EXEC ('DECLARE @OptionIDs dbo.OptionIDs;')
ROLLBACK
這是一個長期存在的問題,因為在創建無法訪問用戶事務獲取的鎖的 TVP 實體時使用了內部系統事務。
在某些時候它可能會被修復
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/361413.html
標籤:C# sql-server
上一篇:Azure托管實體-虛擬機
下一篇:SQLx到Mssql連接字串
