如何让SSMS识别临时表中的新列?

时间:2014-07-24 14:20:30

标签: sql sql-server sql-server-2008

请考虑以下事项:

select * into #tmp_table from dbs.main_table

当我现在编写查询时,Intellisense会返回main_table中现在位于#tmp_table的所有列名。因此,这样的查询在SSMS中看起来很好:

select
    a.field1,
    a.field2
from
    #tmp_table
;

但是,当我在脚本中的#tmp_table中创建新列时:

alter table #tmp_table add field3 varchar(100):

update #tmp_table set field3 = 'Yes'

此处,更新语句中的field3将带有红色下划线,SSMS会告诉我Invalid column name 'field3'。但是,查询有效:

select * from #tmp_table;

这将返回原始表,包括名为field3的列和值。

刷新Inellisense(CTRL-SHIFT-R),不起作用,也不打开和关闭SSMS。

如何让SSMS明白field3不需要加红色下划线(因为select * from #tmp_table可以按预期返回所有内容)?

1 个答案:

答案 0 :(得分:0)

我使用了一个相当不错的intellisense和代码格式化程序,称为SQL Complete。 你可以试一试。 http://www.devart.com/dbforge/sql/sqlcomplete/

很抱歉这是一个答案。我需要50点声誉才能发表评论......