代码之家  ›  专栏  ›  技术社区  ›  n4cer500

SQL Server Profiler突然显示加密文本

  •  3
  • n4cer500  · 技术社区  · 11 年前

    最近我注意到,我们试图评测的一个存储过程未能出现在评测输出中。

    在添加SP:StmtStarting和SP:StmtCompleted事件后,我注意到TextData报告为

    -- Encrypted text
    

    ..,但是存储过程没有被加密。

    这是最近才开始发生的——我们过去对这个SP的描述非常好,但我不知道发生了什么变化。

    如有任何建议,我们将不胜感激。

    更新:SP肯定没有加密。我已经在框中创建了新的SP,并且我看到了带有新SP名称的SP:BatchStarting事件。对于旧的SP,我看不到BatchStarting事件,但我确实看到SP中的语句正在执行。

    但是,我需要查看调用SP时使用的参数的值,因为它们是表类型。最初,我可以看到表类型在调用SP之前被实例化和填充。

    3 回复  |  直到 11 年前
        1
  •  3
  •   n4cer500    11 年前

    所以我想出了这个办法,以防有人觉得它有用。

    我有这个存储过程的表类型参数。其中一个参数传递了大量数据(即具有>5000行的C#数据表)。如果没有这么多数据,存储的进程就可以正常运行。

    我想一定有一个截止点,此时Profiler不会显示所有传入的数据。

        2
  •  0
  •   Jason Carter    11 年前

    有人更改了存储过程并添加了“WITH ENCRYPTION”提示,这将导致此行为。更改存储过程并删除该提示,您将再次看到过程的文本。

    还需要注意的是,如果您没有原始代码,您将无法解密proc的文本来发布ALTER语句,所以希望您能方便地使用它。

    以下是此选项的详细介绍: Options for hiding SQL Server code

        3
  •  0
  •   ergohack    4 年前

    将跟踪属性从默认的 OnlySP(<your database here>)(user,default) TSQL TSQL_Replay 公布了我正在使用的SQL。。。去 File|Properties... 并更改[使用模板:]下拉组合框。 SQL Server Profiler|Trace Properties Dialog