Access table 的欄位名稱用某些英文名稱會出錯!?(labsql)

之前都用中文.沒發生問題.今天用英文居然出錯.剛開始以為是中英文問題.交叉測試後發現只要我打zone這個單字就會出錯.改寫成z就沒這個問題.sql有優先使用掉這個單字嗎?在欄位名稱不應該會出現這種問題才對吧

我用的是INSER INTO

![](upload://9Cv2zOoC8kBwkH0LAgBZCZWHoE1.jpeg)

=========================================================================

 

![](upload://6TTFKpq6Yf637hJmY2nZYrZc3hg.jpeg)

1338820.949849537

嗯嗯...在使用資料庫的時候要注意「保留字」的問題。

這些保留字由資料庫優先使用,所以資料庫的欄位中部可以有保留字。

Access2002/Access2003的保留字請參考這一篇文章:http://support.microsoft.com/kb/286335/

[Quote]

-A
    ADD
    ALL
    Alphanumeric
    ALTER
    AND
    ANY
    Application
    AS
    ASC
    Assistant
    AUTOINCREMENT
    Avg
-B
    BETWEEN
    BINARY
    BIT
    BOOLEAN
    BY
    BYTE
-C
    CHAR, CHARACTER
    COLUMN
    CompactDatabase
    CONSTRAINT
    Container
    Count
    COUNTER
    CREATE
    CreateDatabase
    CreateField
    CreateGroup
    CreateIndex
    CreateObject
    CreateProperty
    CreateRelation
    CreateTableDef
    CreateUser
    CreateWorkspace
    CURRENCY
    CurrentUser
-D
    DATABASE
    DATE
    DATETIME
    DELETE
    DESC
    Description
    DISALLOW
    DISTINCT
    DISTINCTROW
    Document
    DOUBLE
    DROP
-E
    Echo
    Else
    End
    Eqv
    Error
    EXISTS
    Exit
-F
    FALSE
    Field, Fields
    FillCache
    FLOAT, FLOAT4, FLOAT8
    FOREIGN
    Form, Forms
    FROM
    Full
    FUNCTION
-G
    GENERAL
    GetObject
    GetOption
    GotoPage
    GROUP
    GROUP BY
    GUID
-H
    HAVING
-I
    Idle
    IEEEDOUBLE, IEEESINGLE
    If
    IGNORE
    Imp
    IN
    INDEX
    Index, Indexes
    INNER
    INSERT
    InsertText
    INT, INTEGER, INTEGER1, INTEGER2, INTEGER4
    INTO
    IS
-J
    JOIN
-K
    KEY
-L
    LastModified
    LEFT
    Level
    Like
    LOGICAL, LOGICAL1
    LONG, LONGBINARY, LONGTEXT
        
-M
    Macro
    Match
    Max, Min, Mod
    MEMO
    Module
    MONEY
    Move
-N
    NAME
    NewPassword
    NO
    Not
    Note
    NULL
    NUMBER, NUMERIC
-O
    Object
    OLEOBJECT
    OFF
    ON
    OpenRecordset
    OPTION
    OR
    ORDER
    Orientation
    Outer
    OWNERACCESS
-P
    Parameter
    PARAMETERS
    Partial
    PERCENT
    PIVOT
    PRIMARY
    PROCEDURE
    Property
-Q
    Queries
    Query
    Quit
-R
    REAL
    Recalc
    Recordset
    REFERENCES
    Refresh
    RefreshLink
    RegisterDatabase
    Relation
    Repaint
    RepairDatabase
    Report
    Reports
    Requery
    RIGHT
-S
    SCREEN
    SECTION
    SELECT
    SET
    SetFocus
    SetOption
    SHORT
    SINGLE
    SMALLINT
    SOME
    SQL
    StDev, StDevP
    STRING
    Sum
-T
    TABLE
    TableDef, TableDefs
    TableID
    TEXT
    TIME, TIMESTAMP
    TOP
    TRANSFORM
    TRUE
    Type
-U
    UNION
    UNIQUE
    UPDATE
    USER
-V
    VALUE
    VALUES
    Var, VarP
    VARBINARY, VARCHAR
-W
    WHERE
    WITH
    Workspace
-X
    Xor
-Y
    Year
    YES
    YESNO
        
還有以下標點符號也是保留字
   .
   /
   *
   ;
   :
   !
   #
   &
   -
   ?
   "
   '
   $

[/Quote]

雖然以上資料沒有將Zone列為保留字,但是根據:http://www.freebsd.org.hk/html/pgsqldoc-7.0c/syntax.htm 的說明,「Zone」是 SQL92SQL3 的保留關鍵字

總之,既然「Zone」不能設定為欄位,那就換別的名稱吧。

我的習慣是,不要使用「單一單字」,而是使用「單字的組合」,如使用「BigDate」而不是「Date」,因為Date是保留字。

Benjamin謝啦

1338821.9990509259