MS Access链接表到SQL Server

时间:2018-08-24 18:26:43

标签: sql-server database

我研究了“如何将MS Access链接表获取到SQL Server”,但是,没有发现适用于我的情况的任何结果。

我正在将数据库(db1)从MS Access升级到SQL Server。我需要将链接表从db1导入SQL Server(2016)。

是否有某种方法可以将链接表连接移至我的SQL Server?我当前拥有的链接表是从一个Access数据库到另一个Access数据库。

注意:db1中的链接表是到另一个MS Access(2007)数据库的。

2 个答案:

答案 0 :(得分:2)

通过打开与SQL Server的连接并执行其所需的任何任务(例如SELECT,INSERT,UPDATE等)来访问“链接” SQL Server表。

如果您正在谈论采用另一种方式,则没有SQL Server将打开Access数据库以执行查询的“反向”功能。

如果只需要从Access导入数据到SQL Server,请右键单击数据库并选择“任务”,然后选择“导入数据”。

编辑:显然可以使用Access在SQL上创建链接服务器,但是考虑到Access锁定不是为任何大量的并发而设计的,我还是建议不要使用它,除非这只是一次性的事情。

答案 1 :(得分:1)

好吧,您的工作可能已经完成了。如果您的Access DB不太复杂,则Upsize向导可能会为您完成一些工作。

https://support.office.com/en-us/article/move-access-data-to-a-sql-server-database-by-using-the-upsizing-wizard-5d74c0df-c8cd-4867-8d07-e6e759d72924

但是,如果您的数据库有些复杂,并且我猜是这样,那么Upsize向导将无济于事。向导绝对不会处理表格和报告;这些是Access特有的。 SQL将有所不同,但可能仅稍有不同。可能有很多方法可以解决此问题。我想到的一种可能性是,可以将Access中的所有表导出为CSV文件,然后将这些CSV文件批量加载到SQL Server中。至少,这会将数据加载到架构中。然后,您可以开始重建查询。好吧,一次只做一个步骤即可。

'    VBA to run in Access
Option Compare Database

Private Sub Command0_Click()

Dim obj As AccessObject, dbs As Object
Set dbs = Application.CurrentData
For Each obj In dbs.AllTables
If Left(obj.Name, 4) <> "MSys" Then
DoCmd.TransferText acExportDelim, , obj.Name, obj.Name & ".csv", True
'DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, obj.Name, obj.Name & ".xls", True
End If
Next obj

End Sub

我认为,这应该可以帮助您前进。如果您还有其他问题或需要进一步澄清此概念,请发回。同样,可能有解决此问题的方法。这只是想到的一件事。