我有一个 Access DB,最终将被带有 Web 前端的 SQL DB 取代。Web 应用程序目前正在开发中。我已使用迁移助手将 Access DB 复制到 SQL,但不幸的是,我们不能只将 Access 前端链接到 SQL DB 并只使用 SQL DB,它们必须保持独立,直到我们可以从一个切换到另一个。因此,有数据被添加到 Access DB,我需要定期将这些数据复制到 SQL DB。
是否有一个脚本或简单的过程可以将数据从 Access 表复制到 SQL 表,以便我可以每周运行一次作为计划任务?
答案1
除了 SSIS 选项之外,您还可以直接链接到 SQL Server 中的访问数据库,就像该数据库是任何其他链接数据库一样。您可以使用它来使用由 SQL Server 代理或其他任务运行器安排的任务复制数据。例如,一个简单的“从访问数据库完全刷新一个表”作业可能看起来像:
EXEC sp_addlinkedserver
@server = 'mdb',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@srvproduct = 'OLE DB Provider for Jet',
@datasrc = 'c:\path\to\db\db.mdb'
GO
DELETE table_to_refresh
INSERT table_to_refresh SELECT * FROM mdb...table_to_refresh_from
GO
EXEC sp_dropserver 'mdb', NULL
GO
当其他工具(如 SSIS)不可用时,我曾使用这种方法快速从 Access DB 复制数据。您可以像使用其他任何工具一样使用 DB 中的表(我猜还有视图),因此您不限于上述示例中的简单“全选”查询。
答案2
虽然你或我对此没有任何发言权,但我会推动将 Access 应用程序升级到 SQL Server。然后只开发 Web 访问所需的功能,根据要求,这些功能可能并不多。尽可能多地保留 Access 应用程序中的功能,因为它是一个更好的 RAD 工具。
答案3
您可以使用 SSIS 包并将它们保存到磁盘。请参阅http://msdn.microsoft.com/en-us/library/ms141209.aspx作为起点,并检查http://www.codeproject.com/KB/aspnet/Schedule__Run__SSIS__DTS.aspx
答案4
访问 MSSQL 可能会有用:http://www.bullzip.com/products/a2s/info.php