Запрос SQL Server для создания базы данных дает мне ошибку, когда я включаю числовые символы в имя базы данных

У меня проблемы с запуском простого SQL-запроса в Microsoft SQL Server 2005 для создания базы данных, и я не уверен, почему.

Когда я запускаю этот запрос

CREATE DATABASE 4444-virtual2

Я получаю эту ошибку

Неверный синтаксис около '4444'.

Что конкретно мне нужно указать, если я создаю таблицу базы данных с числовыми значениями в имени? Или я что-то забыл?

2 ответа

Решение

Имена баз данных должны начинаться с буквы, подчеркивания, знака или цифры:

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

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

  • Подчеркивание (_), знак (@) или число (#).

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

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

Если вы не хотите ограничивать каждое использование имени двойными кавычками "4444-virtual2" или скобки [4444-virtual2],

Вы все еще можете создать базу данных с этим именем, но вам нужно заключить ее в кавычки или скобки. например, это работает:

CREATE DATABASE [4444-virtual2]

или это:

CREATE DATABASE "4444-virtual2"
Другие вопросы по тегам