“数据库中已存在一个名为‘xxx’的对象”的问题

“数据库中已存在一个名为‘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......

当您不想提前创建表时,请使用 select into。

相关内容