INSERT *查询 - 字段顺序危险?

时间:2014-03-04 21:02:52

标签: sql ms-access

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

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

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

2 个答案:

答案 0 :(得分:6)

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

始终使用列列表。

我很惊讶文档在这一点上完全含糊不清。但SQL标准和其他所有数据库都使用位置。 MS Access也做同样的事情,因为不要求在select子句中命名字段。因此,没有任何关于对齐名称的信息。

答案 1 :(得分:0)

@Gordon Linoff已经说过这个,但仅仅是为了强调:

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

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

所以你的查询应该是:

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