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

时间:2010-06-21 19:18:21

标签: sql sql-server sql-server-2005 identifier

我无法在 Microsoft SQL Server 2005 中运行简单的SQL查询来创建数据库而且我不确定原因。

当我运行此查询时

CREATE DATABASE 4444-virtual2

我收到此错误

  

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

如果我在名称中使用数值创建数据库表,是否还有必须指定的内容?或者我忘了什么?

2 个答案:

答案 0 :(得分:8)

数据库名称需要start with a letter, underscore, at sign or number sign

  

第一个角色必须是其中之一   以下内容:

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

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

  •   
     

开头的某些符号   标识符在SQL中有特殊含义   服务器。一个常规标识符   以at符号始终表示   局部变量或参数和   不能用作任何名称   其他类型的对象。标识符   以数字符号开头表示   临时表或程序。一个   以double开头的标识符   数字符号(##)表示全局   临时对象。虽然数量   标志或双号标志字符   可以用来开始名字   其他类型的对象,我们没有   推荐这种做法。

     

某些Transact-SQL函数具有名称   以符号加倍开头(@@)。   避免与这些混淆   功能,你不应该使用名称   从@@开始。

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

答案 1 :(得分:4)

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

CREATE DATABASE [4444-virtual2]

或者这个:

CREATE DATABASE "4444-virtual2"