INSERT – S Q L 命 令
在表尾追加一个包含指定字段值的记录
语 法
INSERT INTO dbf_name [( fname1 [, fname2 , ...])] VALUES ( eExpression1 [, eExpression2 , ...])
– 或者 –
INSERT INTO dbf_name F R O M A R R A Y ArrayName | FROM MEMVAR
参 数 描 述
INSERT INTO dbf_name
指 定 要 追 加 记 录 的 表 名 dbf_name 中 可 以 包 含 路 径 也 可 以 是 一 个 名 称 表 达式
如果指定的表没有打开 则 Visual FoxPro 先在一个新工作区中以独占方式打开该表然后再把新记录追加到表中 此时并未选定这个新工作区 选定的仍然是当前工作区
如果所指定的表是打开的 INSERT 命令就把新记录追加到这个表中 如果表不是在当前工作区打开的 则追加记录后表所在的工作区仍然不是选定工作区 选定的仍然是
当前工作区
[( fname1 [, fname2 [, ...]])]
指 定 新 记 录 的 字 段 名 INSERT - SQL 命 令 将 向 这 些 字 段 中 插 入 字 段 值
VALUES ( eExpression1 [, eExpression2 [ , ...]])
新 插 入 记 录 的 字 段 值 如 果 省 略 了 字 段 名 那 么 必 须 按 照 表 结 构 定 义 字 段 的顺 序 来 指 定 字 段 值 如 果 SET NULL 的 值 为 O N INSERT – S Q L 会 试 图 将null 值 插 入 在 VALUES 子 句 中 没 有 指 定 的 任 意 字 段 中
F R O M A R R A Y ArrayName
指 定 一 个 数 组 数 组 中 的 数 据 将 被 插 入 到 新 记 录 中 从 第 一 个 数 组 元 素 开始 数 组 中 的 每 个 元 素 的 内 容 依 次 插 入 到 记 录 的 对 应 字 段 中 第 一 个 数 组 元素 的 内 容 插 入 到 新 记 录 的 第 一 个 字 段 第 二 个 元 素 的 内 容 插 入 到 第 二 个 字 段 依 此 类 推
当 包 含 F R O M A R R A Y 子 句 时 会 忽 略 字 段 的 任 何 默 认 值
F R O M M E M V A R
把 变 量 的 内 容 插 入 到 与 它 同 名 的 字 段 中 如 果 某 一 字 段 不 存 在 同 名 的 变 量则 该 字 段 为 空
说 明
新记录中包含了 VALUE 子句列出的值 或包含指定的数组或变量中的值 插入新记录后 记录指针指向新记录
示 例
下面的示例打开了 employee 表并添加一个记录
USE employee
INSERT INTO employee (emp_no, fname, lname, officeno) ; VALUES (3022, "John", "Smith", 2101)
下面的 示例 打开了数据库 testdata 中的 customer 表 当前记录的内容分散到变量中并且表的结构被复制到新表 cust2 中 可用 INSERT – SQL 在表 cust2 中 插入新记录也可以发出 BROWSE 来显示新记录
CLOSE DATABASES
CLEAR
OPEN DATABASE (HOME(2) + 'Data\testdata') USE Customer && 打开 customer 表
*把当前记录存入内存变量中
SCATTER MEMVAR
- 把当前表的结构复制到 EXAMPLE 表中
COPY STRUCTURE TO cust2
- 从内存变量中插入记录
INSERT INTO cust2 FROM MEMVAR
SELECT CUST2 BROWSE
- 关闭并删除 EXAMPLE 表
USE
DELETE FILE cust2.dbf
请 参 阅
CREATE QUERY , CREATE TABLE – S Q L , MODIFY QUERY, SELECT –
SQL