我想調試一部分應用程序,其中數據庫上的一些操作發生在同一個事務中,後面的步驟取決於之前完成的那些。能夠看看數據庫中發生了什麼,以確保每個步驟都正確完成將是有用的。如何在事務中檢查SQL Server數據庫?
有沒有辦法在事務運行時查看數據庫中的內容?
我想調試一部分應用程序,其中數據庫上的一些操作發生在同一個事務中,後面的步驟取決於之前完成的那些。能夠看看數據庫中發生了什麼,以確保每個步驟都正確完成將是有用的。如何在事務中檢查SQL Server數據庫?
有沒有辦法在事務運行時查看數據庫中的內容?
SELECT * FROM dbo.Table WITH (NOLOCK)
會做你想要的,只是要小心幻影讀取。
如果你想知道哪些正在執行SQL語句使用SQL Server Profiler
如果你的意思是你想看看錶數據(代表我的假設),你可以隨時使用的WITH (NOLOCK)
約束上表 - 但我不確定你會得到任何在你的交易中被修改的東西。
在其他的答案中表達的WITH (NOLOCK)
概念的一個延伸...你根本就:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
這將然後允許你「窺探」到的數據還未被提交由事務正在調試。如果您需要調用存儲過程或函數(這些存儲過程或函數不能直接受到WITH (NOLOCK)
的限制),這非常有用。
如果您發佈代碼,XML或數據樣本,請**在文本編輯器中突出顯示這些行,然後單擊編輯器工具欄上的「代碼示例」按鈕(「{}」)以精確地設置格式和語法突出顯示它! –