Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何平静IDE关于未声明的临时表?_Sql_Sql Server_Ide - Fatal编程技术网

Sql 如何平静IDE关于未声明的临时表?

Sql 如何平静IDE关于未声明的临时表?,sql,sql-server,ide,Sql,Sql Server,Ide,当我按照如下方式设计一个临时表时,经理咆哮着叫#Temp,并用红色高亮标记它 drop table #Temp select * into #Temp from Donkeys 当我将鼠标悬停在突出显示上时,原因是——正如预期的那样——名称无法识别 无法删除表“#Temp”,因为它不存在或您没有权限 现在,我不是一个SQL开发人员——我来自C#,我被intellisense、Resharper之类的东西宠坏了,所以我不喜欢突出显示某些东西(即使它可以工作)。我安装ManagementStudi

当我按照如下方式设计一个临时表时,经理咆哮着叫#Temp,并用红色高亮标记它

drop table #Temp
select * into #Temp
from Donkeys
当我将鼠标悬停在突出显示上时,原因是——正如预期的那样——名称无法识别

无法删除表“#Temp”,因为它不存在或您没有权限

现在,我不是一个SQL开发人员——我来自C#,我被intellisense、Resharper之类的东西宠坏了,所以我不喜欢突出显示某些东西(即使它可以工作)。我安装ManagementStudio 11.x只是为了让intellisense正常工作,如果可能的话,我想让我的钱物有所值

问题是-我可以对突出部分做些什么吗(纯粹是视觉上的,因为功能是-正如前面指出的-它应该是这样的)


请注意,问题是而不是关于它发生的原因或它是否是一个问题。我完全理解为什么,我宣布这是一个问题(是的,我承认这不是最大的问题,但这对我来说已经足够大了,可以投入时间去问了)。另外,我是人类(即懒惰),所以一个简单的解决方案就可以了。:)

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

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

select * into #Temp
from Donkeys

在不选择单个步骤的情况下重新运行脚本也会更好。

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

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

select * into #Temp
from Donkeys
重新运行脚本而不必选择单独的步骤也会更好。

这样使用:-

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

select * into #Temp
from Donkeys
这样使用:-

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

select * into #Temp
from Donkeys

可通过组合式CtrlShift来实现

您收到此问题是因为#temp尚不存在。您需要检查它是否存在,如下所示:

if OBJECT_ID('tempdb..#temp') is not null
begin
drop table #temp
end
select * into #Temp
from Donkeys
或者,您可以在使用完表格后将其放下:

select * into #Temp
from Donkeys
Drop table #Temp

可通过组合式CtrlShift来实现

您收到此问题是因为#temp尚不存在。您需要检查它是否存在,如下所示:

if OBJECT_ID('tempdb..#temp') is not null
begin
drop table #temp
end
select * into #Temp
from Donkeys
或者,您可以在使用完表格后将其放下:

select * into #Temp
from Donkeys
Drop table #Temp

我认为您需要检查
#Temp
表是否存在,然后
删除它;)@没有。它确实已经存在,因为它是第二次、第三次、第四次(等等)。正如我提到的,查询本身的工作方式与预期的一样。只是视觉效果让我讨厌。(当然,在生产代码中,我当然不会在不检查的情况下删除内容。这一点你是对的!)在SSMS中,很多时候你也会看到红色下划线,当你添加一个新实体时,我通常会忽略它们;)。我认为您需要检查
#Temp
表是否存在,然后
删除它;)@没有。它确实已经存在,因为它是第二次、第三次、第四次(等等)。正如我提到的,查询本身的工作方式与预期的一样。只是视觉效果让我讨厌。(当然,在生产代码中,我当然不会在不检查的情况下删除内容。这一点你是对的!)在SSMS中,很多时候你也会看到红色下划线,当你添加一个新实体时,我通常会忽略它们;)。实际上,自上次运行以来,该表确实存在。第一次我通常不滴水,然后再加上。然后,每一次连续执行都能正常工作。我希望IDE能够检测到临时对象确实存在于内存中。但我想,我需要和绿色的下划线一起生活。太多的工作需要检查是否存在(即,在生产过程中,我总是会检查是否存在)。也许可以尝试按Ctrl+Shift+R,这会刷新智能感知,如果表格确实存在,可能会删除下划线。这应该在您的回答顶部。这正是我要找的!我甚至为你更新了它+1代表坚持!实际上,自上次运行以来,该表确实存在。第一次我通常不滴水,然后再加上。然后,每一次连续执行都能正常工作。我希望IDE能够检测到临时对象确实存在于内存中。但我想,我需要和绿色的下划线一起生活。太多的工作需要检查是否存在(即,在生产过程中,我总是会检查是否存在)。也许可以尝试按Ctrl+Shift+R,这会刷新智能感知,如果表格确实存在,可能会删除下划线。这应该在您的回答顶部。这正是我要找的!我甚至为你更新了它+1代表坚持!很好的例子。我希望IDE能够意识到该对象自上次运行以来就存在,但我想这是我能得到的最好结果+一个很好的例子。我希望IDE能够意识到该对象自上次运行以来就存在,但我想这是我能得到的最好结果+一个很好的例子。