如何将从 ms 访问表中检索到的记录插入到 sql server 表中?

Posted

技术标签:

【中文标题】如何将从 ms 访问表中检索到的记录插入到 sql server 表中?【英文标题】:How can I insert a record retrieved from an ms access table into an sql server table? 【发布时间】:2015-03-27 17:04:52 【问题描述】:

我有一个 MS Access 数据库表,我在没有数据的情况下导出到 SQL Server 2012。所以现在我想将access表中的数据逐行复制到sql表中。

    Dim conn As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection(Configuration.ConfigurationManager.ConnectionStrings("ACCESS_DB_DataConnectionString").ToString())
    Dim comm As System.Data.OleDb.OleDbCommand = New System.Data.OleDb.OleDbCommand("Select * FROM " + accessTable)
    Dim rdr As System.Data.OleDb.OleDbDataReader

    Try
        conn.Open()
        rdr = comm.ExecuteReader

        While rdr.Read
             InsertRecord()
        End While
        rdr.Close()
    Catch ex As Exception
        'Error
    Finally
        comm.Dispose()
        conn.Close()
        conn.Dispose()
    End Try
End Sub

Private Sub InsertRecord()
    'What do I do here?  Select into?  But how?
End Sub

我不想使用常规插入,因为我不想输入所有列名。最终目标是复制我能复制的记录并跳过并获取所有出错行的 ID。

谢谢

【问题讨论】:

使用数据库时遇到的最大问题是强迫自己将数据移动视为line by line 获取列名有什么难的?并且您可以让链接服务器从 SSMS 访问。 老实说,它是一组糟糕的表(不仅仅是一个),其中包含无数列。我不想对每张桌子都这样做。 确实有无数列,您尝试导入失败,您认为上述问题是解决方案? -1 嗯。如果你不知道也没关系。亚当给出了一个有用的答案。 【参考方案1】:

请看一下 SQL Server Management Studio 附带的“SQL Server Import and Export Data”程序。它在向/从 SQL Server 和各种其他格式(如 Access、Excel、OLE 等)传输数据方面做得非常出色。

【讨论】:

最初,我确实使用了 SQLServer 的导入/导出数据程序;但是,它会在数据副本的一部分中出错,并出现不同的错误,并且没有详细说明在哪里。大多数时候。有时我能够在它们不应该存在的地方追踪空值,但在大多数情况下,在被关闭之前我只获得了 1/3 的数据。我什至尝试使用错误时忽略选项,但它从未忽略它们。 谢谢亚当,实际上我在它出错后一直在运行它,发现每次它都走得更远。感谢您的帮助。

以上是关于如何将从 ms 访问表中检索到的记录插入到 sql server 表中?的主要内容,如果未能解决你的问题,请参考以下文章

检索插入记录的 ID:Php & MS SQL SERVER

php检索插入的最后一条记录的ID并将其插入另一个表中

更新查询的 MS Access SQL 错误

mysql 如何把查询到的结果插入到另一个表中

通过需要很长时间的访问将记录插入到 SQL Server 链接表中[重复]

如何在单个查询(sql server)中插入1条记录后检索自动增量值