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

может кто-нибудь пожалуйста, скажите мне, что тут не так?
9 ответов:
всякий раз, когда это происходит со мной, я нажимаю Ctrl+ Shift+R обновления
intellisense, закройте окно запроса (сохранить при необходимости), а затем запустите новый сеанс, который обычно работает довольно хорошо.
эта ошибка также может возникать в инкапсулированных инструкциях SQL, например
объявить @tableName nvarchar (20) SET @tableName = 'GROC'
объявить @updtStmt nvarchar (4000)
SET @updtStmt = 'Update tbProductMaster_' +@tableName + ' SET department_str = ' + @tableName exec sp_executesql @updtStmt
только чтобы обнаружить, что отсутствуют цитаты для инкапсуляции параметра "@tableName " далее, как следующее:
SET @updtStmt = 'Update tbProductMaster_' +@tableName + ' SET department_str = "' + @tableName+"''
спасибо
я получаю ту же ошибку при создании представления.
представьте себе запрос select, который выполняется без проблем:
select id from productsпопытка создать представление из того же запроса приведет к ошибке:
create view app.foobar as select id from productsMsg 207, Уровень 16, состояние 1, процедура foobar, строка 2
Недопустимое имя столбца "id".для меня это оказалось проблемой области видимости; обратите внимание, что представление создается в другой схеме. Указание схема из
productsтаблица решила проблему. То есть.. используя простоproducts.
У меня была похожая проблема.
проблема заключалась в том, что в таблице был триггер, который записывал изменения в таблицу журнала аудита. В таблице журнала аудита отсутствовали столбцы.
следующая процедура помогла мне решить эту проблему, но я не знаю, почему.
- вырезать код, о котором идет речь, заданный строками в сообщении
- сохраните запрос (например, в файл)
- вставьте код туда, где он был раньше
- снова сохраните запрос
даже если это, кажется, тот же запрос, выполняющий его не бросил эту ошибку
Я просто попробовал. Если вы выполните инструкцию для создания локальной таблицы, инструмент примет, что это имя столбца существует. Просто отметьте оператор генерации таблицы в окне редактора и нажмите кнопку Выполнить.
Comments