office交流網--QQ交流群號

Access培訓群:792054000         Excel免費交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

Access SQL語句 Insert into 詳細用法 教程及插入數據常見錯誤的解決辦法

2017-08-16 14:32:00
zstmtony
原創
5167
Access SQL語句 Insert into 詳細用法 教程及向數據表中插入數據常見錯誤的解決辦法

Access Insert into語句的主要用法:

多記錄追加查詢:
INSERT INTO 目標表 [(字段1[, 字段2[, ...]])] [IN 外部數據庫] SELECT [源表.]字段1[, 字段2[, ...] FROM 源表
單記錄追加查詢:
INSERT INTO 目標表 [(字段1[, 字段2[, ...]])] VALUES (值1[, 值2[, ...])

但偶爾Insert into Sql語句執行時會提示一些錯誤

“Insert Into 語法錯誤”,為了這樣一個錯誤要找好久才能解決問題,"Insert Into 語法錯誤"這個提示本身包含的信息量也很少,


為了避免大家在開發的過程中遇到同樣的錯誤和困擾。把常見的解決辦法總結一下與大家分享。

1.保留關鍵字:如果你的數據庫的表的設計包含了Access本身的關鍵字(保留字),則在插入的時候會出現“Insert Into 語法錯誤”
例如:
strSql="Insert into 測試表 (Id,Order) values (12,0)"
這行上面這條語句是失敗的,原因是測試表 表中有一個關鍵字"Order",解決辦法:
1).將語句中的關鍵字用[order]處理就可以了。如:
strSql="Insert into 測試表 (Id,[Order]) values (12,0)"
2).將表名及所有的字段都用[]括起來,這種方式來解決關鍵字的沖突問題。如:

strSql="Insert into [測試表] ([Id],[Order]) values (15,0)"  解決方法就是在表和表的字段上面加上中括號就可以了

3).在設計數據庫的時候盡量避免使用Access本身的保留字。這樣就不會出現應為關鍵字問題引起的錯誤了,這也是最好解決方法。

2.文本類型:字符類型引起的“Insert Into 語法錯誤”,通常是因為數據庫設計的時候字段是字符型的,結果在Insert into 的時候字段值沒有加''引起的。

3.備注類型:備注類型的字段和文本字段一樣,碰到問題,可以用同樣的方法解決
4.日期/時間類型:日期/時間類型的字段要加#號



微軟官方的教程:




INSERT INTO 語句 (Microsoft Access SQL)

Office 2013 及更高版本


上次修改時間:2015年3月9日

適用范圍:Access 2013 | Access 2016

將一個或多個記錄添加到表中。該語句稱為追加查詢。

多記錄追加查詢:

INSERT INTO target [(field1[, field2[, ...]])] [IN externaldatabase] SELECT [source.]field1[, field2[, ...] FROM tableexpression

單記錄追加查詢:

INSERT INTO target [(field1[, field2[, ...]])] VALUES (value1[, value2[, ...])

INSERT INTO 語句包含以下部分:

部分

說明

target

要追加記錄的表或查詢的名稱。

field1field2

向其中追加數據的字段的名稱(如果在 target 參數之后),或獲取其中數據的字段的名稱(如果在 source 參數之后)。

externaldatabase

外部數據庫的路徑。有關路徑的說明,請參閱 IN 子句。

source

要復制其中記錄的表或查詢的名稱。

tableexpression

作為插入記錄來源的表的名稱。該參數可以是單個表名或者是從 INNER JOINLEFT JOINRIGHT JOIN 操作或保存的查詢產生的組合結果。

value1value2

要插入新記錄特定字段中的值。每個值將插入到與該值在列表中的位置相對應的字段內:value1 將插入到新記錄的 field1 字段,value2 插入到 field2 字段等等。這些值必須用逗號分隔,并且用引號 (' ') 引起來。


通過如上所述的單記錄追加查詢語法,可以使用 INSERT INTO 語句向表中追加單個記錄。在這種情形下,代碼要指定每個記錄字段的名稱和值。必須指定每一個將被賦值的記錄字段,并且要給出該字段的值。如果沒有指定每個字段的值,則在缺少值的列中插入默認值或 Null 值。記錄將追加到表的末尾。

通過如上所示的多字段追加查詢語法的 SELECT ... FROM 子句,還可以使用 INSERT INTO 追加一組來自其他表或查詢的記錄。這種情形下,SELECT 子句指定將要追加到指定的 target 表中的字段。

sourcetarget 表可以指定表或查詢。如果指定了查詢,Microsoft Access 數據庫引擎會將記錄追加到查詢指定的任何表或所有表中。

INSERT INTO 是可選的,但是如果包括它,應將它置于 SELECT 語句前面。

如果目標表中包含主鍵,請確保追加到主鍵字段中的值是唯一的、非 Null 的;否則,Microsoft Access 數據庫引擎不會追加這些記錄。

如果將一個自動編號字段記錄追加到一個表中,并且希望對該追加的記錄重新編號,那么不要在查詢語句中包含自動編號字段。如果希望保持字段的原始值,請務必在查詢語句中包含自動編號字段。

通過 IN 子句可以將記錄追加到其他數據庫的表中。

若要新建表,請使用 SELECT... INTO 語句來創建一個生成表查詢。

若要在運行追加查詢之前找出將要追加哪些記錄,可以先執行使用同樣選擇條件的選擇查詢并查看其結果。

追加查詢把記錄從一個或多個表復制到其他表中。包含所追加的記錄的表不會受追加查詢影響。

如果不想從其他表中追加現有記錄,可以通過 VALUES 子句指定每個字段在新的單個記錄中的值。如果忽略了字段列表,VALUES 子句必須包括該表中每個字段的值;否則,INSERT 操作將會失敗。通過附加的帶有 VALUES 子句的 INSERT INTO 語句,可以創建希望得到的每一個新增記錄。









分享
北京十一选五基本走势