【问题标题】:Way to preview (retroview) SQL queries of SQL Server Management Studio Express预览(回顾)SQL Server Management Studio Express 的 SQL 查询的方法
【发布时间】:2008-10-24 06:52:34
【问题描述】:

能否告诉我,是否可以预览(或至少回顾,例如,在一种日志文件中)SQL Server Management Studio Express 即将执行(或刚刚执行)的 SQL 命令?

过去我使用 Embarcadero DBArtisan,它显示了在服务器上实际运行 SQL 查询之前要执行的查询,所以我渴望 Management Studio 中的这个功能。

我找到了“自动生成更改脚本”选项,但它只显示 DDL SQL 查询 (结构变化),而不是数据变化。

【问题讨论】:

    标签: sql-server logging ssms


    【解决方案1】:

    要回答查看使用 Management Studio 时执行的底层查询的问题,有两种方法可以做到这一点。

    Management Studio 中的大多数对话框允许您生成文件或剪贴板的更改脚本,这对于在后台达到峰值以及在开发、暂存和生产服务器之间应用更改很有用。

    另一种解决方案是运行 SQL Server Profiler,并通过过滤

    • Management Studio 的应用程序名称
    • 您帐户的登录名

    一些标准的 T-SQL 跟踪模板可以,或者如果您制作自定义跟踪模板包括 T-SQL SQL:BatchCompleted 和 SQL:BatchStarting Events 的 TextData 字段

    【讨论】:

    • 不幸的是,SSMSE 在创建视图时既不显示更改脚本,也不在编辑单元格数据时显示更改脚本。无论如何,非常感谢您的回答!
    • 我的荣幸。对于创建视图,可以说对于简单的情况(右键单击->窗格->SQL)没有必要,您可以将脚本向导用于复杂的情况(有 INSTEAD OF 触发器等)。事实上,为 DDL 避免使用 SSMS 是值得的。它可以做一些可怕的事情! :-)
    • 它在引擎盖下偷看而不是达到顶峰...... :) 对于其他一切,我没有异议。
    【解决方案2】:

    您可以使用查询探查器(来自 SQL)来查看查询,并在您的 SQL 查询中嵌入事务并在最后执行回滚。

    BEGIN TRAN
    
     INSERT INTO Clients 
     SELECT 'Bruno', 'Alexandre';
    
    END
    
    ROLLBACK TRAN
    

    当您回滚事务时,该过程将返回到 BEGIN TRAN 的开头,您可以确定没有进行任何操作,这是提交查询和在 SQL 遇到错误时安全回滚的方法...

    喜欢:

    IF @@ERROR > 0 GOTO Error
    
    :Error
    ROLLBACK TRANSACTION
    

    【讨论】:

      【解决方案3】:

      你可以使用

      SET SHOWPLAN_TEXT ON
      

      在批处理开始时,将查询的计划和文本回显给您。当SHOWPLAN_TEXT 开启时,查询不会影响任何行。

      然后您可以将SHOWPLAN_TEXT 设置为OFF 来运行您的查询。

      【讨论】:

      • 更准确地说,我正在寻找一种方法来查看当我使用 Management Studio 的用户界面时执行的底层查询。
      猜你喜欢
      • 2012-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-02
      • 2010-11-05
      • 1970-01-01
      相关资源
      最近更新 更多