无效的列名SQL Server错误

dou*_*ood 5 sql sql-server

我有一个存储过程,为'ContentMarginExVat'抛出'无效列名'错误;

SELECT  CategoryTitle, ContentID, ContentTitle, ContentMarginExVat, ContentWeight
FROM    VWProductsCurrent
WHERE   ContentID = @ContentID
Run Code Online (Sandbox Code Playgroud)

我检查了VWProductsCurrents和获取数据的关联表,这两个都选择了ContentMarginExVat,但SQL Server Management Studio 2008仍然说该列的名称无效.

想知道是否有人可能就此提出任何建议?

谢谢.

Ken*_*ent 7

当我选择"选择前1000行"时,我遇到了SSMS生成的查询问题.红色在我的专栏名称下面和我的桌面名称下面.但查询立即执行并显示正确的数据.

经过一些谷歌搜索后,我找到了这个链接.

我按下Ctrl-Shift-R刷新缓存.没有什么事情立即发生,但是大约5-6秒之后,曲线在我遇到这个问题的两张桌子上消失了.


sil*_*ent 2

尝试执行此查询并将列名称复制到您的查询中:

select 
  name 
from
  sys.columns 
where
  object_id = object_id('VWProductsCurrent')
Run Code Online (Sandbox Code Playgroud)

或者尝试使用以下命令重新编译您的存储过程:

exec sp_recompile 'your_proc_name'
Run Code Online (Sandbox Code Playgroud)

  • VWProductsCurrent 是一个使用“*”的视图,对吗?您最近更改了基表定义以添加新列?如果是这样,`exec sp_refreshsqlmodule 'VWProductsCurrent'`就是您所需要的。我想重新编译过程可能会产生相同的效果。 (2认同)