0

我正在使用 SQLserver 2008 R2 版本。我正在尝试使用 SQL CMD 创建数据库。

当我尝试运行以下命令时

Sqlcmd -S 10.2.202.213 -U sa -P 123@123 -Q "create database 125Build5"

我收到以下错误:

消息 102,级别 15,状态 1,服务器 WS-INBLR567,第 1 行“125”附近的语法不正确。

如果我使用不以数字开头的数据库名称,例如“Build5125”,那么它可以工作。但是我可以毫无问题地从 SSMS 创建数据库。

4

2 回答 2

5

尝试:

create database [125Build5]

标识符的规则规定它们必须以字母开头。您可以通过将它们括在括号或双引号中来解决这个问题。

于 2012-05-15T06:00:35.823 回答
2

我真的鼓励你重新考虑创建一个以数字开头的数据库,因为它总是需要一个限定符,从而使跨数据库选择变得痛苦。

但是,也就是说,只需将数据库的名称括在括号中,例如[123Whatever]. 方括号告诉 SQL 将名称作为文字,因此您可以打破您想要的任何标准正常命名规则,包括空格或其他特殊字符。SSMS 允许您以数字开头的原因是因为它在后台执行的 SQL 语句使用了这些括号。

于 2012-05-15T06:04:45.170 回答