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

SQL Server - Недопустимые символы в именах параметров

Мне нужно знать, какие допустимые символы использовать в имени параметра SQL.

Учитывая что-то простое, например SELECT * FROM tblTest WHERE testid = @[X], если X содержит дефис, например, утверждение не будет выполнено. Каковы допустимые символы для имен параметров?

4b9b3361

Ответ 1

Найдите "Идентификаторы" в своих электронных книгах в Интернете, и вы должны найти:

Правила для регулярных идентификаторов

Правила для формата регулярных идентификаторов зависят от базы данных уровень совместимости. Этот уровень можно установить с помощью sp_dbcmptlevel. Когда уровень совместимости равен 90, применяются следующие правила:

Первый символ должен быть одним из следующих:

  • Буква, определенная стандартом Unicode 3.2. Определение букв Unicode включает латинские символы от a до z,
    от A до Z, а также символы букв с других языков.
  • Подчеркивание (_), знак (@) или знак числа (#).

Некоторые символы в начале идентификатора имеют специальные значение в SQL Server. Обычный идентификатор, начинающийся с знак всегда обозначает локальную переменную или параметр и не может использоваться как имя любого другого типа объекта. Инициатор, который запускается с знаком числа обозначает временную таблицу или процедуру. идентификатор, начинающийся с двухзначных знаков (##), обозначает глобальный временный объект. Хотя знак числа или знак двойного числа символы могут использоваться для начала имен других типов объектов, мы не рекомендуем эту практику.

Некоторые функции Transact-SQL имеют имена, начинающиеся с double при знаках (@@). Чтобы избежать путаницы с этими функциями, вы не должны использовать имена, начинающиеся с @@.

Последующие символы могут включать следующее:

  • Буквы, определенные в стандарте Unicode 3.2.
  • Десятичные числа из базовых латинских или других национальных сценариев.
  • Знак на знаке, знак доллара ($), знак числа или символ подчеркивания.

Идентификатор не должен быть зарезервированным словом Transact-SQL. SQL Server резервирует как зарезервированные слова в верхнем и нижнем регистре. Встраиваемые пробелы или специальные символы запрещены. дополнительный символы не допускаются.

Найдите "идентификаторы с разделителями" в своих электронных книгах в Интернете, и вы должны найти:

Тело идентификатора может содержать любая комбинация символов в текущей кодовой страницы, кроме разграничение самих символов. Для Например, идентификаторы с разделителями могут содержат пробелы, любые символы действительны для регулярных идентификаторов, и любой следующих символов.

tilde (~)                hyphen (-)   
exclamation point (!)    left brace ({)   
percent (%)              right brace (})   
caret (^)                apostrophe (')   
ampersand (&)            period (.)   
left parenthesis (()     backslash (\)   
right parenthesis ())    accent grave (`)

Марк

Ответ 2

Поиск книг в Интернете для идентификаторов [SQL Server]. У этого есть правила, которым должны следовать имена параметров. (это был поиск SQL Server 2008), другие версии должны быть похожими на поиск