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