
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的APPEND命令是添加一个或多个新记录的表的末尾。
APPEND命令
添加一个或多个新记录的表的末尾。
句法:
APPEND [BLANK]
[IN nWorkArea | cTableAlias]
[NOMENU]
参数:
BLANK
添加一个空白记录到当前表的末尾。当您发出APPEND BLANK VisualFoxPro不打开编辑窗口。您可以编辑与浏览,更改或编辑新的记录。
IN nWorkArea
指定表到一个新的记录被追加的工作区。
IN cTableAlias
指定表到一个新的记录被追加的别名。
如果省略nWorkArea和cTableAlias,一个新的记录追加到表中的当前工作区。如果发出追加,一个空白的记录添加到表你nWorkArea或cTableAlias和表指定的自动选择。如果发出APPEND BLANK,一个空白的记录添加到表你nWorkArea或cTableAlias和表指定没有被选中。
NOMENU
指定表格菜单标题被从系统菜单栏中删除,防止改变编辑窗口的格式。
APPEND命令示例:
下面的示例使用APPEND BLANK创建一个表与10条记录包含随机值,然后在表中显示的最大值和最小值。
CLOSE DATABASESCREATE TABLE Random (cValue N(3))
FOR nItem = 1 TO 10 && Append 10 records
APPEND BLANK
REPLACE cValue WITH 1 + 100 * RAND( ) && Insert random values
ENDFOR
CLEAR
LIST && Display the values
gnMaximum = 1 && Initialize minimum value
gnMinimum = 100 && Initialize maximum value
SCAN
gnMinimum = MIN(gnMinimum, cValue)
gnMaximum = MAX(gnMaximum, cValue)
ENDSCAN
? 'The minimum value is: ', gnMinimum && Display minimum value
? 'The maximum value is: ', gnMaximum && Display maximum value
在表的末尾添加一个或多个新记录。APPEND [BLANK] [IN nWorkArea | cTableAlias] [NOMENU]
参数
BLANK
在当前表的末尾添加一个空记录。Visual FoxPro 在发出 APPEND BLANK 命令时并不打开编辑窗口。
可以使用 BROWSE、CHANGE 或 EDIT 命令编辑新记录。
IN nWorkArea
指定要添加新记录的表所在的工作区。
IN cTableAlias
指定要添加新记录的表的别名。
如果省略 nWorkArea 和 cTableAlias,新记录将添加到当前选定工作区的表中。如果发出 APPEND 命令,空记录将添加到由 nWorkArea 或 cTableAlias 指定的工作区的表中,并且自动选定该表;如果发出 APPEND BLANK 命令,空记录将添加到指定的 nWorkarea 或 cTableAlias 工作区的表中,但不选定表。
NOMENU
指定将表菜单标题从系统菜单栏中删除,以避免改变编辑窗口的格式。
备注
当发出 APPEND 或 APPEND BLANK 命令,并且没有在当前选定工作区中打开表时,将显示一个打开对话框,您可以在对话框中选择需要添加记录的表。
APPEND 命令打开一个编辑窗口,您可以在其中输入一个或多个新记录。增加新记录后,Visual FoxPro 将自动修改打开的所有索引。
示例
以下示例用 append blank 命令创建一个有 10 条记录的表,记录中包含有随机值,然后显示表的最大值和最小值。
CLOSE DATABASES
CREATE TABLE Random (cValue N(3))
FOR nItem = 1 TO 10 &&添加 10 条记录
APPEND BLANK
REPLACE cValue WITH 1 + 100 * RAND() &&插入随机值
ENDFOR
CLEAR
LIST &&显示值
gnMaximum = 1 &&初始的最小值
gnMinimum = 100 &&初始的最大值
SCAN
gnMinimum = MIN(gnMinimum, cValue)
gnMaximum = MAX(gnMaximum, cValue)
ENDSCAN
? '最小值是: ', gnMinimum &&显示最小值
? '最大值是: ', gnMaximum &&显示最大值
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)