Ответ 1
Всякий раз, когда это происходит со мной, я нажимаю Ctrl + Shift + R, который обновляет intellisense
, закрывает окно запроса (при необходимости сохраняет), а затем запускает новый сеанс, который обычно работает достаточно хорошо.
Я работаю над модификацией существующей хранимой процедуры SQL Server. Я добавил два новых столбца в таблицу и также изменил хранимую процедуру, чтобы выбрать эти два столбца. Хотя столбцы доступны в таблице, SQL Server сохраняет эту ошибку:
Недопустимое имя столбца 'INCL_GSTAMOUNT'
Кто-нибудь может сказать мне, что здесь не так?
Всякий раз, когда это происходит со мной, я нажимаю Ctrl + Shift + R, который обновляет intellisense
, закрывает окно запроса (при необходимости сохраняет), а затем запускает новый сеанс, который обычно работает достаточно хорошо.
Также может произойти, если вместо строк использовать двойные кавычки.
Эта ошибка также может возникать в инкапсулированных операциях 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 +' '' '
Спасибо
Intellisense не обновляется автоматически, и вы не должны полностью полагаться на это
Я получал ту же ошибку при создании представления.
Представьте, что запрос выбора выполняется без проблем:
select id
from products
Попытка создать представление из того же запроса приведет к ошибке:
create view app.foobar as
select id
from products
Msg 207, уровень 16, состояние 1, процедура foobar, строка 2
Недопустимое имя столбца 'id'.
Для меня это оказалось проблемой; обратите внимание, что представление создается в другой схеме. Указание схемы таблицы products
решило проблему. Т.е. используя dbo.products
вместо products
.
с обновленной таблицей или закрыть и открыть sql-сервер этой работы
Я просто попробовал. Если вы выполняете инструкцию для создания локальной таблицы, инструмент будет считать, что это имя столбца существует. Просто пометьте инструкцию генерации таблицы в окне редактора и нажмите "выполнить".
У меня была аналогичная проблема.
Проблема заключалась в том, что в таблице был триггер, который записывал изменения в таблицу журнала аудита. Столбцы отсутствовали в таблице журналов аудита.
Следующая процедура помогла мне решить эту проблему, но я не знаю почему.
Даже если кажется, что выполнение одного и того же запроса не выдает эту ошибку
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