有誰知道命令來檢查SQL Server 2005中是否存在未提交的事務?如何檢查是否存在尚未在SQL Server 2005中提交的事務?
24
A
回答
34
使用@@trancount或sys.dm_tran_active_transactions DMV在SQL 2005年,2008年
8
運行
DBCC OPENTRAN
19
XACT_STATE()報告會話的事務狀態,指示會話是否有活動的事務,以及交易是否有能力承諾。它返回三個值:
- 1,會話具有活動事務。會話可以執行任何操作,包括寫入數據和提交事務。
- 0,該會話沒有活動事務。
- -1,會話有一個活動事務,但發生了一個錯誤,導致該事務被分類爲一個不可提交的事務。會話不能提交事務或回滾到保存點;它只能請求完整的事務回滾。會話在回滾事務之前不能執行任何寫入操作。會話只能執行讀取操作,直到它回退事務。事務回滾後,會話可以執行讀取和寫入操作,並可以開始新的事務。
@@ TRANCOUNT返回當前連接的活動事務數。
- 0,不是在事務
- 1,在一個事務
- N,在嵌套事務
0
sp_who2 sp_lock的
5
SELECT
trans.session_id AS [SESSION ID],
ESes.host_name AS [HOST NAME],login_name AS [Login NAME],
trans.transaction_id AS [TRANSACTION ID],
tas.name AS [TRANSACTION NAME],tas.transaction_begin_time AS [TRANSACTION BEGIN TIME],
tds.database_id AS [DATABASE ID],DBs.name AS [DATABASE NAME]
FROM sys.dm_tran_active_transactions tas
JOIN sys.dm_tran_session_transactions trans
ON (trans.transaction_id=tas.transaction_id)
LEFT OUTER JOIN sys.dm_tran_database_transactions tds
ON (tas.transaction_id = tds.transaction_id)
LEFT OUTER JOIN sys.databases AS DBs
ON tds.database_id = DBs.database_id
LEFT OUTER JOIN sys.dm_exec_sessions AS ESes
ON trans.session_id = ESes.session_id
WHERE ESes.session_id IS NOT NULL
--db名稱將只有當SELECT @@ TRANCOUNT命令執行時纔會獲得。NULL
執行上面的代碼......將給予其交易occures會議細節..
0
歸納起來,有以下幾種方法:
- SELECT @@ TRANCOUNT
- DBCC OPENTRAN
- SELECT XACT_STATE()
- sp_lock的
- SELECT * FROM sys.dm_tran_active_transactions
相關問題
- 1. 是否更改表提交在SQL Server 2005中的事務
- 2. SQL Server 2005事務提交被忽略
- 3. 檢查值是否存在於列或沒有在SQL Server 2005
- 4. Azure/Powershell:檢查SQL Server是否存在
- 5. 如何檢查,如果在SQL Server 2005
- 6. 如何在sql server 2005中手動提升事務日誌?
- 7. 檢查是否存在表的SQL Server
- 8. SQL Server 2005事務
- 9. 如何檢查SQL Server中是否存在表的列表?
- 10. 在連接之前檢查SQL Server是否存在
- 11. 如何檢查SQL Server中是否存在列?
- 12. 如何檢查sql server中是否存在登錄?
- 13. 如何檢查SQL Server實例中是否存在憑據?
- 14. SQL Server事務,其中未提交的數據保存在哪裏?
- 15. 在SQL Server 2005中獲取未完成的事務數據
- 16. 如何檢查sql服務器連接是否有未提交的數據
- 17. 如何在JPA中自動提交SQL Server事務?
- 18. 如何檢查是否安裝了SQL Server 2005或2008
- 19. SQL Server事務我如何提交我的事務
- 20. 如何檢查特定分支上的提交是否存在
- 21. 如何在MS SQL Server 2005中檢查列是否屬於特定類型
- 22. 檢查,如果條件在存儲過程(SQL Server 2005中)
- 23. 如何在形式不提交尚未
- 24. SQL Server 2005和SQL Server 2008之間是否存在衝突?
- 25. 如何檢查新行是否已創建但尚未保存
- 26. 如何在SQL Server 2005中存儲Kannada
- 27. Openquery SQL如何檢查是否存在?
- 28. 如何在sql server 2005中檢查c#中executequery的返回值?
- 29. 我如何檢查表是否存在SQL Server CE 3.5
- 30. 如何檢查使用vb.net和SQL Server是否存在記錄
+1非常好解釋..如何執行完整的事務回滾,如您所說'會話不能提交事務或回滾到保存點;它只能請求完整的事務回滾。「 。你什麼意思是完全回滾? – 2015-02-05 14:03:24