为什么 SQL Server 事件探查器在某些情况下无法捕获全局临时表的创建?

为什么 SQL Server 事件探查器在某些情况下无法捕获全局临时表的创建?

我需要将第三方应用程序的报告逆向工程到 SSRS,以便我可以为我们的用户做出一些更改。

我已经捕获了报告使用的 SQL,但是查询引用了一个全局临时表,该表似乎是在参数输入期间的某个时间点创建的,并在参数屏幕关闭时被删除。

我已将 Profiler 设置为在没有任何过滤器的情况下捕获每个事件,但除了访问它的查询之外,仍然无法在任何地方找到表名。

我已经测试过创建和删除我自己的临时表,并且它会按预期显示在 Profiler 中。

有谁知道为什么我无法捕获用于创建此表的 SQL?

仅供参考:数据库是 2005 年的,但我使用的是 2008 年的工具

答案1

尽管此应用程序使用了很多内联 SQL,但临时表是在存储过程中创建的。

此查询找到了创建表的存储过程。

select O.[name], left(c.[Text], 1000) as Text, left(o.name, 1000) as sp_sort
From sysComments c
  inner join sysobjects o
        on o.id = c.id
where c.[text] like '%##TABLENAME%'

其中一个很快就在分析器列表中被发现。

相关内容