Problemas ao criar uma tabela funcional

2

Essa é uma consulta SQL bem simples que eu diria, mas estou com problemas para fazer isso funcionar.

if (object_id('#InfoTable')is not null) 
Begin
    Drop Table #InfoTable
End

create table #InfoTable (NameOfObject varchar(50), NameOfCounter varchar(50), SampledValue float(30), DayStamp datetime)

insert into #InfoTable(NameOfObject, NameOfCounter, SampledValue, DayStamp)
select vPerformanceRule.ObjectName AS NameOfObject, vPerformanceRule.CounterName AS NameOfCounter, Perf.vPerfRaw.SampleValue AS SampledValue, Perf.vPerfHourly.DateTime AS DayStamp
from vPerformanceRule, vPerformanceRuleInstance, Perf.vPerfHourly, Perf.vPerfRaw
where (ObjectName like 'Logical Disk' and CounterName like '% Free Space' AND SampleValue > 95 AND SampleValue < 100)
order by DayStamp desc

select NameOfObject, NameOfCounter, SampledValue, DayStamp
from #InfoTable


Drop Table #InfoTable

Eu tentei várias outras formas de sintaxe, mas não importa o que eu faça, recebo essas mensagens de erro.

Msg 207, Level 16, State 1, Line 10
Invalid column name 'NameOfObject'.
Msg 207, Level 16, State 1, Line 10
Invalid column name 'NameOfCounter'.
Msg 207, Level 16, State 1, Line 10
Invalid column name 'SampledValue'.
Msg 207, Level 16, State 1, Line 10
Invalid column name 'DayStamp'.
Msg 207, Level 16, State 1, Line 22
Invalid column name 'NameOfObject'. 
Msg 207, Level 16, State 1, Line 22
Invalid column name 'NameOfCounter'.
Msg 207, Level 16, State 1, Line 22
Invalid column name 'SampledValue'.
Msg 207, Level 16, State 1, Line 22
Invalid column name 'DayStamp'.

A linha 10 é a primeira linha 'insert into' e a linha 22 é a segunda linha de seleção. Alguma idéia?

    
por Hoser 01.06.2012 / 17:17

1 resposta

1

O DROP não está fazendo nada, a menos que o contexto do banco de dados seja TEMPDB, portanto, o #InfoTable provavelmente existe em uma etapa anterior com diferentes nomes de colunas.

Tente alterar seu DROP para:

if (object_id('tempdb..#InfoTable')is not null) 
Begin
    Drop Table #InfoTable
End
    
por 01.06.2012 / 17:50

Tags