из MSDN :
Первый символ должен быть одним из следующих:
- Буква в соответствии со стандартом Unicode 3.2. Определение букв Unicode включает латинские символы от a до z, от A до Z, а также буквенные символы из других языков.
- Подчеркивание (_), знак (@) или знак числа (#).
Последующие символы могут включать следующее:
- Буквы, как определено в стандарте Unicode 3.2.
- Десятичные числа из основных латинских или других национальных алфавитов.
- Знак at, знак доллара ($), знак числа или подчеркивание.
Идентификатор не должен быть зарезервированным словом Transact-SQL. SQL Server резервирует прописные и строчные версии зарезервированных слов.
Встроенные пробелы или специальные символы недопустимы.
Дополнительные символы не допускаются.
редактировать
ссылаясь на NinthSense: спецификации также говорят:
Некоторые символы в начале идентификатора имеют особое значение в SQL Server. Обычный идентификатор, начинающийся со знака at, всегда обозначает локальную переменную или параметр и не может использоваться в качестве имени любого другого типа объекта.
и этот оператор может быть выполнен без ошибок:
create table #t (
#oid int ,
äß int,
ßdid varchar(10),
_data varchar(10)
)