2016-07-15 78 views
4
CREATE DATABASE test.fdb -user SYSDBA -password *******; 

我使用上面的命令創建我在Windows 7項目中的數據庫我是新來的火鳥SQL,我用我的系統憑據登錄,但它顯示了一些錯誤。那麼,我如何重置我的密碼?令牌未知,而創建數據庫

SQL error code = -104 
Token unknown. 

我甚至不知道SQLCODE = -104的意義。

回答

2

顯示的錯誤不是由於不知道數據庫密碼造成的,您在CREATE DATABASE語句中出現語法錯誤。錯誤令牌未知意味着語句分析器讀取它沒有想到的內容;錯誤通常跟在違規令牌之後。

如果我的火鳥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正確的語法是:

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 'test.fdb' user SYSDBA password '*******'; 

所以:路徑周圍

  • 行情數據庫文件(或別名)
  • - befor e本userpassword條款圍繞密碼
  • 行情(違反語法中的,報價是圍繞用戶名可選)

順便說一句,在SQL error code平時是不是很有趣(因爲他們中的一些可以涵蓋幾個不同的錯誤)。

+0

是Firebird是否區分大小寫? – kvk30

+1

@ kvk30談到語句:no(所以'CREATE DATABASE ...'和'create database ...'都可以),但是當涉及到對象名時:它們可能是。無引號的對象名稱不區分大小寫(它們存儲爲大寫),帶引號的對象名稱區分大小寫(它們按原樣存儲),另請參見http://www.firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html /fblangref25-structure-identifiers.html –

+0

如何重置Firebird 2.1的密碼? – kvk30