我有一个旧数据库,其中包含一个包含客户订单和客户详细信息的表。我继续使用单独的表为客户和详细信息创建一个新的数据库模型。我设法将客户详细信息迁移到新数据库,但无法迁移客户订单。我们认为这样就可以了,并且我们将从现在开始构建订单记录,而忽略旧数据库中的所有先前订单。这是不久前的事,我不记得我无法导入客户订单的确切原因。但是,现在我们发现我们需要新数据库中的旧订单。是否有使用 Microsoft Access 的简单方法来执行此操作?
这就是为什么:
我有一个旧数据库,其中包含一个包含客户订单和客户详细信息的表。我继续使用单独的表为客户和详细信息创建一个新的数据库模型。我设法将客户详细信息迁移到新数据库,但无法迁移客户订单。我们认为这样就可以了,并且我们将从现在开始构建订单记录,而忽略旧数据库中的所有先前订单。这是不久前的事,我不记得我无法导入客户订单的确切原因。但是,现在我们发现我们需要新数据库中的旧订单。是否有使用 Microsoft Access 的简单方法来执行此操作?
这就是为什么:
根据您的模式的复杂程度,一种简单的方法是通过INSERT INTO SELECT
查询进行模式映射。
例如,如果您的旧数据库有一个表:
Orders
------
OrdID
CustID
ProductName
Price
oDay
oMonth
oYear
并且您的新数据库具有不同名称的字段、额外字段等:
OrderDetails
------
Order_ID
Customer_ID
Product
Price
DeliveryAddress
OrderDate
您需要做的就是创建一个插入查询以将旧记录附加到新表中。在定义查询时,您可以指定源和目标字段名称,甚至可以对数据执行函数/表达式。您甚至可以直接查询另一个表,而无需将其链接或导入到新数据库中:
INSERT INTO OrderDetails (Order_ID,Customer_ID,Product,Price,OrderDate)
SELECT OrdID,CustID,ProductName,Price,DateSerial(oYear,oMonth,oDay) AS oDate
FROM Orders IN 'C:\oldDatabasePath.mdb';
如果您必须对数据进行额外的转换,例如在列值上运行表达式,我建议SELECT
在添加INSERT
行之前测试查询的部分。