Подтвердить что ты не робот

SQL Server: неверное имя столбца

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

Недопустимое имя столбца 'INCL_GSTAMOUNT'

enter image description here

Кто-нибудь может сказать мне, что здесь не так?

4b9b3361

Ответ 1

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

Ответ 2

Также может произойти, если вместо строк использовать двойные кавычки.

Ответ 3

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

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

DECLARE @updtStmt nvarchar (4000)

SET @updtStmt = 'Обновить tbProductMaster_' + @tableName + 'SET department_str = '+ @tableName exec sp_executesql @updtStmt

Только чтобы обнаружить, что отсутствуют котировки для инкапсуляции параметра "@tableName" далее, как показано ниже:

SET @updtStmt = 'Обновить tbProductMaster_' + @tableName + 'SET department_str = '' '+ @tableName +' '' '

Спасибо

Ответ 4

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

Ответ 5

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

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

select id
from products

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

create view app.foobar as
select id
from products

Msg 207, уровень 16, состояние 1, процедура foobar, строка 2
Недопустимое имя столбца 'id'.

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

Ответ 6

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

Ответ 7

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

Ответ 8

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

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

Ответ 9

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

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

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

Ответ 10

There can be many things:
First attempt, make a select of this field in its source table;
Check the instance of the sql script window, you may be in a different instance;
Check if your join is correct;
Verify query ambiguity, maybe you are making a wrong table reference
Of these checks, run the T-sql script again

[Image of the script SQL][1]
  [1]: https://i.stack.imgur.com/r59ZY.png'enter code here

Ответ 11

  • Освежите свои столы.
  • Перезагрузите сервер SQL.
  • Обращайте внимание на орфографические ошибки в Query.