回覆列表
  • 1 # 使用者8451710051916

    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

  • 中秋節和大豐收的關聯?
  • 上聯是“懵懵懂懂一甲子,人生如夢”,如何對下聯?