2013-09-22 6 views
42

Я работаю над модификацией существующей хранимой процедуры SQL Server. Я добавил два новых столбца в таблицу и также изменил хранимую процедуру, чтобы выбрать эти два столбца. Хотя столбцы доступны в таблице SQL Server Держит дает эту ошибку:SQL Server: недопустимое имя столбца

Invalid column name 'INCL_GSTAMOUNT'

enter image description here

Может кто-нибудь пожалуйста, скажите мне, что здесь не так?

+1

Вы выполнили ее - вы получаете эту ошибку? intellisense может занять некоторое время, чтобы обновить? – gordatron

+1

Вы перекомпилировали хранимую процедуру? – Lokesh

ответ

117

Всякий раз, когда это происходит со мной, я нажимаю Ctrl + Сдвиг + R который освежает intellisense, закройте окно запроса (за исключением если необходимо), затем запустите новый сеанс, который обычно работает достаточно хорошо.

+4

Я нашел нажатие клавиши достаточно (большое спасибо!) - не нужно закрывать окно запроса. – sparrow

+0

Возможно, все изменилось с тех пор, как я опубликовал это, хорошо знать. – Ric

2

Intellisense автоматически не обновляется, и вы не должны полностью полагаться на эту

0

с таблицей обновления или закрывать и открывать SQL сервер эта работа

32

Может также случиться, если положить строку в двойные кавычки вместо одного.

+0

Вот в чем причина в моем случае - не могли бы вы объяснить причину этого – ImranNaqvi

+0

Ух ... СПАСИБО! Настолько глуп. Была ли эта проблема с запросом диапазона дат с датами в двойных кавычках. –

2

Эта ошибка может также возникать в инкапсулированных операциях SQL, например.

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

DECLARE @updtStmt nvarchar(4000)

SET @updtStmt = 'Update tbProductMaster_' [email protected] +' SET department_str = ' + @tableName exec sp_executesql @updtStmt

только чтобы обнаружить, что есть не хватает цитат инкапсулировать параметр «@tableName» дальше, как следующие:

SET @updtStmt = 'Update tbProductMaster_' [email protected] +' SET department_str = ''' + @tableName + ''' '

Благодарности

1

я получаю ту же ошибку при создании вида ,

Представьте выберите запрос, который выполняется без проблем:

select id 
from products 

Попытка создать представление из того же запроса будет выдавать ошибку:

create view app.foobar as 
select id 
from products 

Msg 207, Level 16, State 1, Procedure foobar, Line 2
Invalid column name 'id'.

Для меня это оказалось быть предметом обзора; обратите внимание, что представление создается в другой схеме. Указание схемы таблицы products решило проблему. Т.е. используя dbo.products вместо products.

-1

Я просто попробовал. Если вы выполняете инструкцию для создания локальной таблицы, инструмент будет считать, что это имя столбца существует. Просто пометьте инструкцию генерации таблицы в окне редактора и нажмите «выполнить».

0

У меня была аналогичная проблема.

Неисправность была связана с триггером на столе, который записывал изменения в таблицу журнала аудита. Столбцы отсутствовали в таблице журналов аудита.

+1

Вам нужно подробнее рассказать о решении по устранению проблемы на вопросе, чтобы это было правильным ответом. Благодарю. – BogdanC

0

Следующая процедура помогла мне решить эту проблему, но я не знаю почему.

  1. Обрежьте код в вопросе заданной линии в сообщении
  2. Сохранить запрос (например, файл)
  3. Вставьте код туда, где он был до
  4. Опять сохранить запрос

Даже если это похоже на тот же запрос, выполняющий его, он не выдавал эту ошибку

Смежные вопросы