Назад | Перейти на главную страницу

Проблемы с "В базе данных уже есть объект с именем" 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

Сначала вы создаете таблицу, и это нормально, но затем вы выполняете Select Into, который пытается создать другую временную таблицу с тем же именем. Если вы используете синтаксис создания таблицы, ваш выбор должен выглядеть следующим образом insert into #RandomTableName (nameOfObject, NameOfCounter, SampledValue) select vPerformanceRule.ObjectName, vPerformanceRule.CounterName, Perf.vPerfRaw.SampleValue from......

Используйте select, когда вы не хотите создавать свою таблицу заранее.