【问题标题】:SQL Server Invalid Column name after adding new column添加新列后SQL Server无效的列名
【发布时间】:2012-05-07 11:48:34
【问题描述】:

我刚刚通过SSMS 设计器将标识列添加到包含数据的现有表中,该表更新正常,我可以成功对其运行选择查询,但在查询完成后,我注意到新列带有下划线红色,错误指示它是无效的列名。

为什么会发生这种情况?如果列无效,我希望查询失败。

SSMS 是否保留对必须刷新的旧表的某种类型的内部引用?

我尝试关闭数据库连接并重新打开它,但仍然是同样的错误。不知道我在这里缺少什么。

SELECT TOP 100 
[PRIMARY_NDX_Col1],
[NEW_Col], --QUERY EXECUTES SUCCESSFULLY, BUT THIS IS UNDERLINED RED AS AN INVALID COLUMN
[Col3]
FROM [dbo].[MyTable]

【问题讨论】:

  • 刚刚尝试重新启动并修复了它。想知道是否有办法在编辑表格后动态清除 SSMS 2008 缓存。这似乎是人们可能会花费数小时尝试排除故障的那种错误。
  • 您无需重新启动 SSMS 即可解决此问题。保持这篇文章得心应手,最常见的原因之一是 SSMS 在刷新其本地元数据缓存方面不够快。 mssqltips.com/sqlservertip/2591/…
  • 请解释为什么提供的答案不适用于此问题,以便可以对其进行改进。 @AaronBertrand 里面有很好的提示!

标签: sql sql-server sql-server-2008 tsql sql-server-2005


【解决方案1】:

你也可以

  • Ctrl+Shift+R

  • 转到编辑 >> IntelliSense >> 刷新本地 缓存

【讨论】:

  • 对不起,我在一年后在这里问这个问题。我正在使用 sql server 2000 ad 我没有控件 CTRL+SHIFT+R 或称为 IntelliSense 的东西,我是遇到同样的问题..有什么想法吗?
  • 更多信息:“如果使用 ALTER VIEW 修改了当前使用的视图,则数据库引擎会对该视图进行排他模式锁定。当锁定被授予时,并且没有活动用户视图,数据库引擎从过程缓存中删除视图的所有副本。引用该视图的现有计划保留在缓存中,但在调用时会重新编译。 technet.microsoft.com/en-us/library/ms173846.aspx(见备注部分)
  • 我有一个问题,我从设计中更改了一些列名并保存了表格。我确实刷新了智能感知本地缓存...现在在查询中,更改有效并且错误的红线做出反应,但是当我运行该查询时,它再次显示错误消息“无效的列名”,当我写回旧名称时它可以工作.....帮帮我......!!!!
  • 如果它看起来不起作用,数到十。刷新需要一点时间,并且在工作或完成时没有任何迹象。
  • 如果在遵循@David 的回答后仍然无法正常工作,请尝试关闭并重新打开 SSMS。这对我有用。
猜你喜欢
  • 2013-09-27
  • 1970-01-01
  • 2013-05-06
  • 2013-03-01
  • 1970-01-01
  • 2018-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多