我正在尝试调试应用程序的一部分,其中在同一事务中对数据库执行了许多操作,后面的步骤取决于之前完成的操作。能够查看数据库中发生的情况以确保每个步骤正确完成是有用的。
有没有办法在事务运行时查看数据库中的内容?
答案 0 :(得分:2)
SELECT * FROM dbo.Table WITH (NOLOCK)
会做你想要的,只要小心幻读。
答案 1 :(得分:2)
如果你想要查看表格数据(代表我的假设),你可以随时使用表格上的WITH (NOLOCK)
约束 - 但我不确定你会得到任何已经存在的东西在您的交易中修改。
答案 2 :(得分:0)
如果您想知道正在执行哪些SQL语句,请使用SQL Server Profiler
答案 3 :(得分:0)
在其他答案中表达的WITH (NOLOCK)
想法的扩展......您可以简单地说:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
然后,这将允许您“窥探”尚未被调试的事务提交的数据。如果您需要调用无法直接WITH (NOLOCK)
的存储过程或函数,这非常有用。