UPDATE-SQL 命 令
以新值更新表中的记录
语 法
UPDATE [ DatabaseName1! ]TableName1
SET Column_Name1 = eExpression1
[, Column_Name2 = eExpression2 ...]
W H E R E FilterCondition1 [AND|OR FilterCondition2 ...]]
参 数 描 述
[ DatabaseName1 !] TableName1
TableName1 指 定 要 更 新 记 录 的 表
DatabaseName1 指定包含表的非当前数据库名 如果包含表的数据库不是当前数据库则应包含这个数据库名 在数据库名称与表名之间有一个感叹号 (!)
SET Column_Name1 = eExpression1
[ , Column_Name2 = eExpression2
指 定 要 更 新 的 列 以 及 这 些 列 的 新 值 如 果 省 略 了 W H E R E 子 句 在 列 中 的 每
一 行 都 用 相 同 的 值 更 新
W H E R E FilterCondition1 [AND|OR FilterCondition2 ...]]
指 定 要 更 新 的 记 录
FilterCondition 指定要更新的记录所符合的条件 可以根据需要加入多个筛选条件 条件之间用 AND 或 OR 操作符连接 也可以用 NOT 操作符对逻辑表达式的值取反 或者使用 EMPTY() 函数检查字段是否为空
说 明
UPDATE-SQL 命 令 只 能 用 来 更 新 单 个 表 中 的 记 录 注 意 UPDATE-SQL 支持子查询
与 REPLACE 命令不同的是 在更新可共享访问的表中的多个记录时 UPDATE-SQL 命令使用了记录锁 在多用户的情况下 使用记录锁能减少记录竞争 但是可能会降低使用性能 为了达到最好的性能 请以独占使用方式打开表或用 FLOCK() 函数锁定表
示 例
下面的 示例 打开了数据库 testdata 中的 customer 表 UPDATE-SQL 用于将 maxordamt 字段的所有值设置为 25
CLOSEDATABASES
OPENDATABASE(HOME(2)+'Data\testdata') USECustomer&& 打开 customer 表
*Setanddisplayamountsforcustomers
UPDATE customerSETmaxordamt=25
BROWSEFIELDScompany,maxordamt
请 参 阅
DELETE - SQL ,GATHER,INSERT - SQL,REPLACE,SCATTER