使用 Access 数据库表填充现有 SQL Server 数据库表

Posted

技术标签:

【中文标题】使用 Access 数据库表填充现有 SQL Server 数据库表【英文标题】:Populating Existing SQL Server Database tables with Access Database tables 【发布时间】:2012-07-11 16:28:43 【问题描述】:

我在 SQL Server 2008 数据库中有一个空表,我想将访问数据库中的表中的数据插入到 SQL Server 中。有 1000 行需要引入。问题是 SQL Server 数据库表中有其他列在 Access 数据库表中不存在。

这里我提到了一个表,但是大约有 15 个表需要从 access db 表中更新。这样做的最佳方式是什么?

提前致谢

【问题讨论】:

视情况而定。对于 Access 表中不存在的那些 SQL Server 字段,它们是否接受 Null?如果没有,它们是否定义了默认值? 这是您必须执行一次的操作,还是重复操作? @HansUp 它是一次性的。是的,它们可以有空值 【参考方案1】:

在您的 Access 数据库中,您可以创建指向您的 SQL Server 表的 ODBC 链接。然后为每对表(Access 和 SQL Server)执行 Access 调用的追加查询。

INSERT INTO remote_table1 (field1, field2, field3, etc)
SELECT field1, field2, field3, etc
FROM access_table1;

如果字段名称匹配并且数据类型兼容,这应该是相当简单的。如果您的 SQL Server 字段的名称与其 Access 对应字段的名称不同,则需要做更多的工作。如果数据类型不直接兼容,您可以在查询中使用字段表达式转换值。您可以在 Access 查询中使用许多数据类型转换函数:CDate()CStr(); CInt(); CLng();等等

【讨论】:

作为记录,您当然也可以反过来设置链接:有到 Access 的 SQL 链接,并在 SQL 中运行 INSERT ... FROM AccDB.DBName.dbo.TblName。我不知道在类型转换等方面哪个更容易设置,哪个更宽容,但如果 Access-to-SQL 最终变得很痛苦,请尝试另一种方式。

以上是关于使用 Access 数据库表填充现有 SQL Server 数据库表的主要内容,如果未能解决你的问题,请参考以下文章

使用 SQL 在现有表中创建和填充主键列

使用每日更新的 Access 表自动刷新 SQL Server 后端

创建 SQL 表作为现有表的副本(ODBC 和 C#)[关闭]

如何从现有 SQL DB ASP.Net MVC 4 在下拉列表中填充数据

access2013 VBA中怎样运行sql语句

如何使用 SSMA(用于访问 SQL Server)将具有不同列的表迁移到现有表中?