UPDATE-SQL 命 令

UPDATE-SQL 命 令 - 图1以新值更新表中的记录

语 法

UPDATE [ DatabaseName1! ]TableName1

SET Column_Name1 = eExpression1

[, Column_Name2 = eExpression2 ...]

W H E R E FilterCondition1 [AND|OR FilterCondition2 ...]]

参 数 描 述

[ DatabaseName1 !] TableName1

UPDATE-SQL 命 令 - 图2TableName1 指 定 要 更 新 记 录 的 表

UPDATE-SQL 命 令 - 图3UPDATE-SQL 命 令 - 图4UPDATE-SQL 命 令 - 图5UPDATE-SQL 命 令 - 图6DatabaseName1 指定包含表的非当前数据库名 如果包含表的数据库不是当前数据库则应包含这个数据库名 在数据库名称与表名之间有一个感叹号 (!)

SET Column_Name1 = eExpression1

[ , Column_Name2 = eExpression2

UPDATE-SQL 命 令 - 图7UPDATE-SQL 命 令 - 图8指 定 要 更 新 的 列 以 及 这 些 列 的 新 值 如 果 省 略 了 W H E R E 子 句 在 列 中 的 每

UPDATE-SQL 命 令 - 图9一 行 都 用 相 同 的 值 更 新

W H E R E FilterCondition1 [AND|OR FilterCondition2 ...]]

UPDATE-SQL 命 令 - 图10指 定 要 更 新 的 记 录

UPDATE-SQL 命 令 - 图11UPDATE-SQL 命 令 - 图12UPDATE-SQL 命 令 - 图13UPDATE-SQL 命 令 - 图14UPDATE-SQL 命 令 - 图15FilterCondition 指定要更新的记录所符合的条件 可以根据需要加入多个筛选条件 条件之间用 AND 或 OR 操作符连接 也可以用 NOT 操作符对逻辑表达式的值取反 或者使用 EMPTY() 函数检查字段是否为空

说 明

UPDATE-SQL 命 令 - 图16UPDATE-SQL 命 令 - 图17UPDATE-SQL 命 令 - 图18UPDATE-SQL 命 令 只 能 用 来 更 新 单 个 表 中 的 记 录 注 意 UPDATE-SQL 支持子查询

UPDATE-SQL 命 令 - 图19UPDATE-SQL 命 令 - 图20UPDATE-SQL 命 令 - 图21UPDATE-SQL 命 令 - 图22UPDATE-SQL 命 令 - 图23UPDATE-SQL 命 令 - 图24UPDATE-SQL 命 令 - 图25UPDATE-SQL 命 令 - 图26与 REPLACE 命令不同的是 在更新可共享访问的表中的多个记录时 UPDATE-SQL 命令使用了记录锁 在多用户的情况下 使用记录锁能减少记录竞争 但是可能会降低使用性能 为了达到最好的性能 请以独占使用方式打开表或用 FLOCK() 函数锁定表

示 例

UPDATE-SQL 命 令 - 图27UPDATE-SQL 命 令 - 图28下面的 示例 打开了数据库 testdata 中的 customer 表 UPDATE-SQL 用于将 maxordamt 字段的所有值设置为 25

CLOSEDATABASES

UPDATE-SQL 命 令 - 图29UPDATE-SQL 命 令 - 图30OPENDATABASE(HOME(2)+'Data\testdata') USECustomer&& 打开 customer 表

*Setanddisplayamountsforcustomers

UPDATE customerSETmaxordamt=25

BROWSEFIELDScompany,maxordamt

请 参 阅

DELETE - SQL ,GATHER,INSERT - SQL,REPLACE,SCATTER