更新、插入和 ?DBEXECUTE 中的字符
本主题描述了更新和插入 DBEXECUTE 的行为和
?
的使用字符。假设有一个名为“项目”的空白 SQL 表,其中包含两列:ID 和名称。ID 是主键。
在未受保护的单元格中使用此公式:
=DBEXECUTE("configdb", "SELECT items.id,items.name FROM items WHERE ID=1","INSERT into items (ID,Name) VALUES (1,?)")
视图模式下,在单元格中指定 “1”,然后按 Enter。
由于表为空且不包含值 1 的 ID,因此执行插入语句。插入语句在表中创建此行:
行号 | ID | 名称 |
---|---|---|
1 | 1 | 1 |
通过输入 “1”,即可指定 ID。?
字符会导致在名称列中输入此值。
现在在单元格中指定 “2”。因为 ID 1 已存在,因此不执行插入语句。相反,如下表所示,将更新包含 ID 1 的行:
行号 | ID | 名称 |
---|---|---|
1 | 2 | 1 |
由于不执行插入语句,因此“名称”列未更新。
现在在单元格中指定 “3”。由于 ID 1 不存在,因此执行插入语句,并添加新行:
行号 | ID | 名称 |
---|---|---|
1 | 1 | 3 |
2 | 2 | 1 |
此部分公式中值 1 和 3 公式的结果:VALUES (1,?)
。
如果现在指定 “4”,则会再次显示 ID 1 并更新包含 ID 1 的行。
行号 | ID | 名称 |
---|---|---|
1 | 2 | 1 |
2 | 4 | 3 |
如果指定 “5”,则添加另一行:
行号 | ID | 名称 |
---|---|---|
1 | 1 | 5 |
2 | 2 | 1 |
3 | 4 | 3 |