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

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

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

CREATE DATABASE 4444-virtual2

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

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

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

Ответы [ 2 ]

8 голосов
/ 21 июня 2010

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

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

  • Буква, как определено Unicode Стандарт 3.2. Определение Юникода букв включает латинские буквы от А до Я, от А до Я, а также буквы персонажей из других языки.

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

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

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

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

4 голосов
/ 21 июня 2010

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

CREATE DATABASE [4444-virtual2]

или это:

CREATE DATABASE "4444-virtual2"
...