SELECT $ b не показывает intellisense как ошибку, но выдает ошибку. в чем причина этого сценария? - PullRequest
0 голосов
/ 15 февраля 2020

я пытался исследовать SQL. При этом получил ошибку ниже -

SELECT $b

Ошибка - неверный псевдостолбец "$ b".

Что это за ошибка? Почему IntelliSense SSMS не может обработать его как ошибку, если это ошибка. Если я пишу запрос как «Select #», то Intellisense показывает красный знак под символом #. если я делаю то же самое для $ b, это похоже на отсутствие ошибки, но после выполнения выдает ошибку.

1 Ответ

1 голос
/ 15 февраля 2020

IntelliSense - это вещь на стороне клиента, столбцы - это вещь на стороне сервера. IntelliSense не обязательно будет знать, что определенный псевдостолбец не существует (например, $ IDENTITY существует, но только для таблиц, имеющих столбец типа IDENTITY), но при запуске запроса сервер сообщит вам, что его не существует. IntelliSense не является устройством, которое постоянно запрашивает сервер, чтобы убедиться, что то, что вы пишете, не является мусором - вы можете увидеть это, если вы используете другое окно SSMS для добавления столбца в таблицу, а затем ссылаетесь на него из первого окна - i Tellisene не знает его там, пока вы не обновите sh (Ctrl + Alt + RI), поэтому он подведет красную линию под новым столбцом, даже если запрос будет работать нормально, когда вы отправите его на сервер

...