当我在数据库名称中包含数字字符时,SQL Server查询创建数据库给我一个错误

Mad*_*ish 3 sql sql-server sql-server-2005 identifier

我在Microsoft SQL Server 2005中运行简单的SQL查询以创建数据库时遇到问题,我不知道为什么.

当我运行此查询时

CREATE DATABASE 4444-virtual2
Run Code Online (Sandbox Code Playgroud)

我收到此错误

'4444'附近的语法不正确.

如果我在名称中创建一个包含数值的数据库表,是否还有必须指定的内容?还是我忘记了什么?

Ben*_*n S 9

数据库名称需要以字母,下划线,符号或数字符号开头:

第一个字符必须是以下之一:

  • Unicode标准3.2定义的字母.字母的Unicode定义包括从a到z,从A到Z的拉丁字符,以及来自其他语言的字母字符.

  • 下划线(_),符号(@)或数字符号(#).

标识符开头的某些符号在SQL Server中具有特殊含义.以at符号开头的常规标识符始终表示局部变量或参数,不能用作任何其他类型对象的名称.以数字符号开头的标识符表示临时表或过程.以双数字符号(##)开头的标识符表示全局临时对象.虽然数字符号或双数字符号可用于开始其他类型对象的名称,但我们不建议使用此做法.

某些Transact-SQL函数的名称以符号(@@)的double开头.为避免与这些功能混淆,不应使用以@@开头的名称.

除非您想用双引号"4444-virtual2"或括号分隔名称的每次使用[4444-virtual2].


Cad*_*oux 5

您仍然可以使用该名称创建数据库,但是需要将其放在引号或方括号中。例如,这有效:

CREATE DATABASE [4444-virtual2]
Run Code Online (Sandbox Code Playgroud)

或这个:

CREATE DATABASE "4444-virtual2"
Run Code Online (Sandbox Code Playgroud)