SQL Server - недопустимые символы в именах параметров - PullRequest
12 голосов
/ 15 апреля 2009

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

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

Ответы [ 2 ]

22 голосов
/ 15 апреля 2009

Ищите «Идентификаторы» в ваших книгах по SQL в Интернете, и вы должны найти:

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

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

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

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

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

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

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

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

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

Ищите «идентификаторы с разделителями» в своих книгах по SQL, и вы должны найти:

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

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

Марк

1 голос
/ 15 апреля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...