暂时table未声明IDE如何冷静?

How to calm the IDE about not declared temporary table?

当我如下设计一个临时 table 时,经理对名字 #Temp 咆哮并用红色突出显示它。

drop table #Temp
select * into #Temp
from Donkeys

当我将鼠标悬停在突出显示上时,原因是 - 正如预期的那样 - 无法识别该名称。

Cannot drop the table '#Temp', because it does not exist or you do not have permissions.

现在,我不是 SQL 开发人员 - 我来自 C#,我被 intellisense、Resharper 等宠坏了,所以我不喜欢突出显示某些东西(即使它有效)。我安装 Management Studio 11.x 只是为了让智能感知正常工作,如果可能的话,我希望物有所值。

问题是 - 我可以对突出显示做些什么吗(纯粹是视觉上的,因为功能是 - 如前所述 - 正如它应该的那样)?

请注意,问题 不是 为什么会发生或是否有问题。我非常理解为什么,我宣布这是一个问题(是的,我承认这不是最大的问题,但它足以让我实际花时间去问)。另外,我是人(即懒惰),所以一个简单的解决方案就可以了。 :)

您当然需要在尝试删除之前检查 table 是否存在。 否则 IDE 会一直给你红线。

if exists(select 1 from tempdb.sys.tables where object_id = object_id('tempdb..#Temp'))
drop table #Temp

select * into #Temp
from Donkeys

最好重新运行您的脚本,而无需 select 单独的步骤。

像这样使用:-

If Object_Id('tempdb.dbo.#Temp') Is Not Null Drop Table #Temp;

select * into #Temp
from Donkeys

可以通过组合ctrlshiftR.[=12=来实现]

您收到此问题是因为#temp 尚不存在。您要么需要像这样检查它是否存在:

if OBJECT_ID('tempdb..#temp') is not null
begin
drop table #temp
end
select * into #Temp
from Donkeys

或者您可以在使用后删除 table:

select * into #Temp
from Donkeys
Drop table #Temp