Я новичок в SQL, поэтому это может быть простой ошибкой, но я не смог найти надежного решения где-либо еще. Проблема в том, что всякий раз, когда я пытаюсь использовать свою временную таблицу, она сообщает мне, что ее нельзя использовать, потому что уже существует объект с таким именем. Я часто пытаюсь поменять имена, и иногда это позволяет мне немного поработать с таблицей, но это никогда не длится долго. Я неправильно бросаю стол? Кроме того, мне предлагали просто использовать постоянную таблицу, но эта база данных не позволяет мне этого делать.
create table #RandomTableName(NameOfObject varchar(50), NameOfCounter varchar(50), SampledValue decimal)
select vPerformanceRule.ObjectName, vPerformanceRule.CounterName, Perf.vPerfRaw.SampleValue
into #RandomTableName
from vPerformanceRule, vPerformanceRuleInstance, Perf.vPerfRaw
where (ObjectName like 'Processor' AND CounterName like '% Processor Time')
OR(ObjectName like 'System' AND CounterName like 'Processor Queue Length')
OR(ObjectName like 'Memory' AND CounterName like 'Pages/Sec')
OR(ObjectName like 'Physical Disk' AND CounterName like 'Avg. Disk Queue Length')
OR(ObjectName like 'Physical Disk' AND CounterName like 'Avg. Disk sec/Read')
OR(ObjectName like 'Physical Disk' and CounterName like '% Disk Time')
OR(ObjectName like 'Logical Disk' and CounterName like '% Free Space' AND SampleValue > 70 AND SampleValue < 100)
order by ObjectName, SampleValue
drop table #RandomTableName
Сначала вы создаете таблицу, и это нормально, но затем вы выполняете Select Into, который пытается создать другую временную таблицу с тем же именем. Если вы используете синтаксис создания таблицы, ваш выбор должен выглядеть следующим образом insert into #RandomTableName (nameOfObject, NameOfCounter, SampledValue)
select vPerformanceRule.ObjectName, vPerformanceRule.CounterName, Perf.vPerfRaw.SampleValue
from......
Используйте select, когда вы не хотите создавать свою таблицу заранее.