我需要将第三方应用程序的报告逆向工程到 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%'
其中一个很快就在分析器列表中被发现。