2011-07-29 39 views
1

我想調試一部分應用程序,其中數據庫上的一些操作發生在同一個事務中,後面的步驟取決於之前完成的那些。能夠看看數據庫中發生了什麼,以確保每個步驟都正確完成將是有用的。如何在事務中檢查SQL Server數據庫?

有沒有辦法在事務運行時查看數據庫中的內容?

回答

2
SELECT * FROM dbo.Table WITH (NOLOCK) 

會做你想要的,只是要小心幻影讀取。

+0

如果您發佈代碼,XML或數據樣本,請**在文本編輯器中突出顯示這些行,然後單擊編輯器工具欄上的「代碼示例」按鈕(「{}」)以精確地設置格式和語法突出顯示它! –

0

如果你想知道哪些正在執行SQL語句使用SQL Server Profiler

2

如果你的意思是你想看看錶數據(代表我的假設),你可以隨時使用的WITH (NOLOCK)約束上表 - 但我不確定你會得到任何在你的交易中被修改的東西。

0

在其他的答案中表達的WITH (NOLOCK)概念的一個延伸...你根本就:

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; 

這將然後允許你「窺探」到的數據還未被提交由事務正在調試。如果您需要調用存儲過程或函數(這些存儲過程或函數不能直接受到WITH (NOLOCK)的限制),這非常有用。

相關問題