Проблемы с "В базе данных уже есть объект с именем" xxx "
Я довольно плохо знаком с 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
1 ответ
Сначала вы создаете таблицу, и это нормально, но затем вы делаете Select Into, который пытается создать другую временную таблицу с тем же именем. Если вы используете синтаксис создания таблицы, то ваш выбор должен выглядеть следующим образом insert into #RandomTableName (nameOfObject, NameOfCounter, SampledValue)
select vPerformanceRule.ObjectName, vPerformanceRule.CounterName, Perf.vPerfRaw.SampleValue
from......
Мы выбираем, когда вы не хотите создавать свою таблицу раньше времени.