在-104 SQLCODE中未知的令牌

时间:2016-07-15 07:11:01

标签: sql sql-server firebird

CREATE DATABASE test.fdb -user SYSDBA -password *******;

我正在使用上面的命令在Windows 7中为我的项目创建一个数据库。我是Firebird SQL的新手,我使用我的系统凭据登录但是它显示了一些错误。那么,我该如何重置密码?

SQL error code = -104
Token unknown. 

我甚至不知道 SQLCODE = -104 的重要性。

1 个答案:

答案 0 :(得分:2)

显示的错误不是由于不知道数据库密码造成的,CREATE DATABASE语句中存在语法错误。错误令牌未知意味着语句解析器读取了它没有预料到的东西;错误通常后面是违规令牌。

如果我在Firebird 3.0上使用ISQL执行您的语句,我会收到以下完整错误:

SQL> CREATE DATABASE test.fdb -user SYSDBA -password *******;
Statement failed, SQLSTATE = 42000
SQL error code = -104
-Token unknown
-test

这意味着您test中的 CREATE {DATABASE | SCHEMA} '<filespec>' [USER 'username' [PASSWORD 'password']] [PAGE_SIZE [=] size] [LENGTH [=] num [PAGE[S]] [SET NAMES 'charset'] [DEFAULT CHARACTER SET default_charset [COLLATION collation]] -- not supported in ESQL [<sec_file> [<sec_file> ...]] [DIFFERENCE FILE 'diff_file']; -- not supported in ESQL <filespec> ::= [<server_spec>]{filepath | db_alias} <server_spec> ::= servername [/{port|service}]: | \\servername\ <sec_file> ::= FILE 'filepath' [LENGTH [=] num [PAGE[S]] [STARTING [AT [PAGE]] pagenum] 内容有问题。

CREATE DATABASE的正确语法是:

create database 'test.fdb' user SYSDBA password '*******';

换句话说,你的陈述应该是:

-

所以:

  • 引用数据库文件(或别名)的路径
  • userpassword条款
  • 之前没有SQL error code
  • 密码周围的引号(与显示的语法相反,引号在用户名周围是可选的)

顺便说一句,{{1}}通常不是很有趣(因为其中一些可以涵盖几个不同的错误)。