【发布时间】:2011-07-29 13:35:58
【问题描述】:
我正在尝试调试应用程序的一部分,其中数据库上的许多操作都在同一个事务中发生,后面的步骤取决于之前完成的步骤。能够查看数据库中正在发生的事情会很有用,以确保每个步骤都正确完成。
有没有办法在事务运行时查看数据库中的内容?
【问题讨论】:
标签: sql-server database sql-server-2005 transactions
我正在尝试调试应用程序的一部分,其中数据库上的许多操作都在同一个事务中发生,后面的步骤取决于之前完成的步骤。能够查看数据库中正在发生的事情会很有用,以确保每个步骤都正确完成。
有没有办法在事务运行时查看数据库中的内容?
【问题讨论】:
标签: sql-server database sql-server-2005 transactions
SELECT * FROM dbo.Table WITH (NOLOCK)
会做你想要的,只是要小心幻读。
【讨论】:
{ })工具栏以很好地格式化和语法突出显示它!
如果您的意思是要查看表数据(代表我的一个假设),您始终可以在表上使用 WITH (NOLOCK) 约束 - 但我不确定您是否会得到已修改的任何内容您的交易。
【讨论】:
如果您想知道正在执行哪些 SQL 语句,请使用 SQL Server Profiler
【讨论】:
WITH (NOLOCK) 在其他答案中表达的想法的扩展...您可以简单地:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
这将允许您“窥探”尚未被正在调试的事务提交的数据。这在需要调用存储过程或函数时非常有用,不能直接受制于WITH (NOLOCK)。
【讨论】: