SQL Server:无效的列名称

我正在修改现有的SQL Server存储过程。 我在表中添加了两个新列,并修改了存储过程以及select这两列。 尽pipeSQL Server表中列可用,但仍然出现此错误:

无效的列名称“INCL_GSTAMOUNT”

在这里输入图像说明

谁能告诉我这里有什么问题吗?

每当发生这种情况,我按Ctrl + Shift + R刷新intellisense ,closures查询窗口(如有必要保存),然后开始一个新的会话,通常工作得很好。

如果将string放在双引号而不是单引号中,也可能发生。

智能感知不是自动刷新的,你不应该完全依赖

这个错误也可能发生在封装的SQL语句中

DECLARE @tableName nvarchar(20)SET @tableName ='GROC'

DECLARE @updtStmt nvarchar(4000)

SET @updtStmt ='Update tbProductMaster_'+ @ tableName +'SET department_str ='+ @tableName exec sp_executesql @updtStmt

只有发现缺less引用来封装参数“@tableName”,如下所示:

SET @updtStmt ='Update tbProductMaster_'+ @ tableName +'SET department_str ='''+ @tableName +''''

谢谢

创build视图时,我得到了同样的错误。

设想一个没有问题的select查询:

 select id from products 

试图从相同的查询创build一个视图会产生一个错误:

 create view app.foobar as select id from products 

第207行,第16层,状态1,程序foobar,第2行
无效的列名称“ID”。

对我来说,原来是一个范围问题。 注意视图是在不同的模式下创build的。 指定products表的模式解决了这个问题。 即使用dbo.products而不是仅仅是products

用刷新表或者closures并打开sql server这个工作

我有一个类似的问题。

问题是在表上有一个触发器,将更改写入审计日志表。 审计日志表中缺less列。

我刚试过 如果执行语句来生成本地表,该工具将接受该列名称存在。 只需在编辑器窗口中标记表生成语句,然后单击执行。