【问题标题】:How to inspect SQL Server database during a transaction?如何在事务期间检查 SQL Server 数据库?
【发布时间】:2011-07-29 13:35:58
【问题描述】:

我正在尝试调试应用程序的一部分,其中数据库上的许多操作都在同一个事务中发生,后面的步骤取决于之前完成的步骤。能够查看数据库中正在发生的事情会很有用,以确保每个步骤都正确完成。

有没有办法在事务运行时查看数据库中的内容?

【问题讨论】:

    标签: sql-server database sql-server-2005 transactions


    【解决方案1】:
    SELECT * FROM dbo.Table WITH (NOLOCK)
    

    会做你想要的,只是要小心幻读。

    【讨论】:

    • 如果您发布代码、XML 或数据示例,在文本编辑器中突出显示这些行并单击编辑器上的“代码示例”按钮 ({ })工具栏以很好地格式化和语法突出显示它!
    【解决方案2】:

    如果您的意思是要查看表数据(代表我的一个假设),您始终可以在表上使用 WITH (NOLOCK) 约束 - 但我不确定您是否会得到已修改的任何内容您的交易。

    【讨论】:

      【解决方案3】:

      如果您想知道正在执行哪些 SQL 语句,请使用 SQL Server Profiler

      【讨论】:

        【解决方案4】:

        WITH (NOLOCK) 在其他答案中表达的想法的扩展...您可以简单地:

        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
        

        这将允许您“窥探”尚未被正在调试的事务提交的数据。这在需要调用存储过程或函数时非常有用,不能直接受制于WITH (NOLOCK)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-15
          • 2016-11-25
          • 1970-01-01
          • 1970-01-01
          • 2015-11-04
          • 2023-03-28
          相关资源
          最近更新 更多