Por que o criador de perfil do SQL Server não está capturando a criação da Tabela Temporária Global em alguns casos?

1

Eu preciso fazer engenharia reversa no relatório de um aplicativo de terceiros para o SSRS, para que eu possa fazer algumas alterações para nossos usuários.

Capturei o SQL que é usado pelo relatório, mas a consulta faz referência a uma Tabela Global de Tempory que parece ser criada em algum momento durante a entrada do parâmetro e descartada quando a tela do parâmetro é fechada.

Eu configurei o Profiler para capturar todos os eventos sem nenhum filtro, mas ainda não consigo encontrar o nome da tabela em qualquer lugar, exceto a consulta que os acessa.

Eu testei a criação e descarte de minhas próprias tabelas temporárias e isso é mostrado no Profiler conforme o esperado.

Alguém sabe por que não consigo capturar o SQL usado para criar esta tabela?

FYI: o banco de dados é 2005, mas estou usando ferramentas de 2008

    
por KiwiNige 01.09.2010 / 03:44

1 resposta

1

Embora este aplicativo use um monte de SQL embutido, a tabela temporária é criada em um procedimento armazenado.

Esta consulta encontrou os procs armazenados que criam as tabelas.

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%'

E um deles foi logo encontrado na lista de perfis.

    
por 01.09.2010 / 05:38