Все цитаты взяты из Идентификаторы базы данных
Переменные следуют правилам для «обычных идентификаторов». Они классифицируются как:
Обычные идентификаторы
Соблюдайте правила для формата идентификаторов. Регулярные идентификаторы не разделяются, когда они используются в инструкциях Transact-SQL.
Объект, заключенный в кавычки (заключенный в скобки ([]
)), является не обычным идентификатором, а идентификатором с разделителями:
Идентификаторы с разделителями
Заключены в двойные кавычки (") или квадратные скобки ([]). Идентификаторы, соответствующие правилам формата идентификаторов, не могут быть разделены. Например:
То, что переменная следует правилам для обычного идентификатора, можно найти в разделе «Правила для обычных идентификаторов»:
Имена переменных, функций и хранимых процедур должны соответствовать
со следующими правилами для идентификаторов Transact-SQL.
Первый символ должен быть одним из следующих:
Буква в соответствии со стандартом Unicode 3.2. Определение букв Unicode включает латинские символы от a до z, от
От A до Z, а также буквенные символы с других языков.
Подчеркивание (_), знак (@) или знак числа (#).
Некоторые символы в начале идентификатора имеют особое значение в SQL Server. Обычный идентификатор, который начинается с
Знак всегда обозначает локальную переменную или параметр и не может быть использован
как имя любого другого типа объекта. Идентификатор, который начинается
со знаком числа обозначает временную таблицу или процедуру.
Идентификатор, который начинается с двойных чисел (##) обозначает глобальный
временный объект Хотя знак числа или знак двойного числа
символы могут использоваться, чтобы начать имена других типов объектов,
мы не рекомендуем эту практику.
Некоторые функции Transact-SQL имеют имена, начинающиеся с двойных символов (@@). Во избежание путаницы с этими функциями не следует
используйте имена, начинающиеся с @@.
Поэтому, поскольку имя переменной должно быть обычным идентификатором, с разделителем идентификатор [@ExampleVariable]
не является допустимым именем.
Хотя, как ни странно, вы можете создать SP / функцию с идентификатором с разделителями, который делает вывод, что документация устарела.