VFP INSERT – SQL 命令
在表尾追加一個包含指定欄位值的記錄。
INSERT INTO dbf_name [(fname1 [, fname2, ...])]
VALUES (eExpression1 [, eExpression2, ...])
或者
INSERT INTO dbf_name FROM ARRAY ArrayName | FROM MEMVAR
引數
INSERT INTO dbf_name
指定要追加記錄的表名。dbf_name 中可以包含路徑,也可以是一個名稱表示式。
如果指定的表沒有開啟,則 Visual FoxPro 先在一個新工作區中以獨佔方式開啟該表,然後再把新記錄追加到表中。此時並未選定這個新工作區,選定的仍然是當前工作區。
如果所指定的表是開啟的,INSERT 命令就把新記錄追加到這個表中。如果表不是在當前工作區開啟的,則追加記錄後表所在的工作區仍然不是選定工作區,選定的仍然是當前工作區。
在命令執行期間, 當前工作區改變為要插入新記錄的工作區。換句話說, 在執行 insert 命令時, 是在與要插入記錄所在的表的工作區中, 而不管在發出命令前的當前工作區是哪一工作區。
[(fname1 [, fname2 [, ...]])]
指定新記錄的欄位名,insert – sql 命令將向這些欄位中插入欄位值。
VALUES (eExpression1 [, eExpression2 [, ...]])
新插入記錄的欄位值。如果省略了欄位名,那麼必須按照表結構定義欄位的順序來指定欄位值。
如果 eExpression 是一個欄位名, 它必須包括表別名。
FROM ARRAY ArrayName
指定一個數組,陣列中的資料將被插入到新記錄中。從第一個陣列元素開始,陣列中的每個元素的內容依次插入到記錄的對應欄位中。第一個陣列元素的內容插入到新記錄的第一個欄位,第二個元素的內容插入到第二個欄位,… 依次類推。
在包括 FROM ARRAY 子句時任何欄位預設值被忽略。
FROM MEMVAR
把記憶體變數的內容插入到與它同名的欄位中。如果某一欄位不存在同名的記憶體變數,則該欄位為空。
備註
新記錄中包含了 VALUE 子句列出的值,或包含指定的陣列或記憶體變數中的值。插入新記錄後,記錄指標指向新記錄。
示例
下面的例子開啟 employee 表並新增一條記錄。
USE employee
INSERT INTO employee (emp_no, fname, lname, officeno) ;
VALUES (3022, "John", "Smith", 2101)
下面示例開啟 testdata 資料庫中的 customer 表。用 scatter 命令把當前記錄的內容賦給變數, 並把表的結構複製到名為 cust2 的新表中。用 INSERT - SQL 插入一個新記錄到 cust2 表, 用 BROWSE 來顯示新記錄。
CLOSE DATABASES
CLEAR
OPEN DATABASE (HOME(2) + "Data\testdata")
USE Customer && 開啟 customer 表
* Scatter 當前記錄到記憶體變數
SCATTER MEMVAR
* 複製當前表結構到示例表
COPY STRUCTURE TO cust2
* 從記憶體變數插入記錄
INSERT INTO cust2 FROM MEMVAR
SELECT CUST2
BROWSE
USE
DELETE FILE cust2.dbf
VFP INSERT – SQL 命令
在表尾追加一個包含指定欄位值的記錄。
INSERT INTO dbf_name [(fname1 [, fname2, ...])]
VALUES (eExpression1 [, eExpression2, ...])
或者
INSERT INTO dbf_name FROM ARRAY ArrayName | FROM MEMVAR
引數
INSERT INTO dbf_name
指定要追加記錄的表名。dbf_name 中可以包含路徑,也可以是一個名稱表示式。
如果指定的表沒有開啟,則 Visual FoxPro 先在一個新工作區中以獨佔方式開啟該表,然後再把新記錄追加到表中。此時並未選定這個新工作區,選定的仍然是當前工作區。
如果所指定的表是開啟的,INSERT 命令就把新記錄追加到這個表中。如果表不是在當前工作區開啟的,則追加記錄後表所在的工作區仍然不是選定工作區,選定的仍然是當前工作區。
在命令執行期間, 當前工作區改變為要插入新記錄的工作區。換句話說, 在執行 insert 命令時, 是在與要插入記錄所在的表的工作區中, 而不管在發出命令前的當前工作區是哪一工作區。
[(fname1 [, fname2 [, ...]])]
指定新記錄的欄位名,insert – sql 命令將向這些欄位中插入欄位值。
VALUES (eExpression1 [, eExpression2 [, ...]])
新插入記錄的欄位值。如果省略了欄位名,那麼必須按照表結構定義欄位的順序來指定欄位值。
如果 eExpression 是一個欄位名, 它必須包括表別名。
FROM ARRAY ArrayName
指定一個數組,陣列中的資料將被插入到新記錄中。從第一個陣列元素開始,陣列中的每個元素的內容依次插入到記錄的對應欄位中。第一個陣列元素的內容插入到新記錄的第一個欄位,第二個元素的內容插入到第二個欄位,… 依次類推。
在包括 FROM ARRAY 子句時任何欄位預設值被忽略。
FROM MEMVAR
把記憶體變數的內容插入到與它同名的欄位中。如果某一欄位不存在同名的記憶體變數,則該欄位為空。
備註
新記錄中包含了 VALUE 子句列出的值,或包含指定的陣列或記憶體變數中的值。插入新記錄後,記錄指標指向新記錄。
示例
下面的例子開啟 employee 表並新增一條記錄。
USE employee
INSERT INTO employee (emp_no, fname, lname, officeno) ;
VALUES (3022, "John", "Smith", 2101)
下面示例開啟 testdata 資料庫中的 customer 表。用 scatter 命令把當前記錄的內容賦給變數, 並把表的結構複製到名為 cust2 的新表中。用 INSERT - SQL 插入一個新記錄到 cust2 表, 用 BROWSE 來顯示新記錄。
CLOSE DATABASES
CLEAR
OPEN DATABASE (HOME(2) + "Data\testdata")
USE Customer && 開啟 customer 表
* Scatter 當前記錄到記憶體變數
SCATTER MEMVAR
* 複製當前表結構到示例表
COPY STRUCTURE TO cust2
* 從記憶體變數插入記錄
INSERT INTO cust2 FROM MEMVAR
SELECT CUST2
BROWSE
USE
DELETE FILE cust2.dbf