使用 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 数据库表的主要内容,如果未能解决你的问题,请参考以下文章
使用每日更新的 Access 表自动刷新 SQL Server 后端
创建 SQL 表作为现有表的副本(ODBC 和 C#)[关闭]