INSERT INTO 陳述式

新增一個或多個記錄至一個資料表。 此動作可參照為一個新增查詢

語法

多重記錄新增查詢:

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

單一記錄新增查詢:

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

INSERT INTO 陳述式可分為以下幾個部份:

部份 敘述
target 欲新增記錄的資料表或查詢的名稱。
field1, field2 如果其後為 target 引數,指欲新增資料的欄位名稱;如果其後為 source 引數,則指欲從其取得資料的欄位名稱。
externaldatabase 外部資料庫的路徑 有關路徑的資訊,請參閱 IN 子句。
source 複製記錄的來源資料表或查詢的名稱。
tableexpression 欲插入資料至其中的一個或多個資料表的名稱。 此引數可為單一資料表名稱、一個已儲存的查詢,或由 INNER JOINLEFT JOINRIGHT JOIN 合成的結果。
value1, value2 欲插入至新增記錄的特定欄位值。 每一個值將依照排列中的位置順序插入至相關欄位之中: value1 將被插入至新增記錄的 field1 之中,value2 插入至 field2,依此類推。 您必須使用逗點將這些值分隔,並且將文字欄位用引號 (' ') 括起來。

註解

您可以使用 INSERT INTO 陳述式來新增一個單一記錄至一個資料表中,如以上所示使用單一記錄新增查詢語法。 在這種例子中,您的程式碼指定了每一欄位的記錄名稱和值。 您必須指定想要分配每一記錄欄位的值以及在此欄位的值。 如果您沒有指定每一個欄位時,預設值或 Null 值將被插入至沒有資料的欄之中。 這些記錄將被新增至資料表的尾部。

您亦可以使用 INSERT INTO 從其他的資料表新增一組記錄,或使用 SELECT 來查詢 ... FROM 子句如以上所示之多重記錄新增查詢語法,您亦可以從另一資料表或查詢使用 INSERT INTO 新增一組記錄。 在這個範例中,SELECT 子句將指定新增欄位至指定的 target 資料表。

sourcetarget 資料表可以指定一個資料表或查詢。 如果指定查詢,Microsoft Jet 資料庫引擎 會將記錄新增到任何及所有被此查詢所指定的資料表。

INSERT INTO 是選擇性的,但當使用時,請置於 SELECT 陳述式之前。

如果您的目的地資料表包含一個主索引,確定您新增至主索引欄位的值是唯一且不為 Null 的值;如果您沒有這樣做,Microsoft Jet 資料庫引擎將不會新增記錄。

如果您使用自動編號欄位新增記錄至一個資料表中,並且您要將新增記錄重新編號,不要包含自動編號欄位在您的查詢之中。 如果您要保持欄位中的原始值,請將自動編號加在您的查詢之中。

使用 IN 子句,可新增記錄至另一個資料庫中的資料表。

若要建立一個新的資料表,使用 SELECT... INTO 陳述式建立產生資料表查詢

若要在您執行新增查詢之前找出哪些記錄是被新增的,首先執行和檢視一個使用相同的選取範圍準則之選取查詢所獲得的結果。

新增查詢為從一個或多個資料表中複製記錄至另一個資料表。 包含您新增之記錄的資料表將不會被新增查詢所影響。

除了從另一資料表中來新增現存的記錄,您可以指定在單一新增記錄之中使用 VALUES 子句來指定對每一欄位的值。 如果您省略欄位清單,VALUES 子句在資料表之中必須包含每一欄位的值;否則, INSERT 運算將會失敗。 使用額外的 INSERT INTO 陳述式與一個 VALUES 子句來建立您要的每一個額外的記錄。

請參閱
FROM 子句 (Microsoft Jet SQL) SELECT 陳述式 (Microsoft Jet SQL)
IN 子句 (Microsoft Jet SQL) SELECT...INTO 陳述式 (Microsoft Jet SQL)
INNER JOIN 運算 (Microsoft Jet SQL) WHERE 子句 (Microsoft Jet SQL)
LEFT JOIN 和 RIGHT JOIN 運算 (Microsoft Jet SQL)  

範例

INSERT INTO 陳述式範例