INSERT*查询-字段订单危险



我在一个单独的数据库文件中从同一个表向一个表添加记录:

INSERT INTO P
SELECT *
FROM P IN 'C:update.accdb'

我可以相信Access按名称或按字段顺序匹配字段吗?如果有人在C:\update.accdb中重新排序P的字段,这会破坏映射吗?

数据库按字段顺序匹配名称,而不是按名称匹配。

始终使用列列表。

SQL标准和其他所有数据库都使用位置。MS Access也做同样的事情,因为不需要在select子句中命名字段。因此,不一定有任何用于对齐名称的信息。

@Gordon Linoff已经说过了,但只是为了强调:

始终在每个数据库、每个查询中使用列列表

你的同事、客户以及第n代的后代都会感谢你。

所以你的查询应该是:

insert into something (columns...)
select columns...
from somewhere

最新更新