如何将.mdb文件复制到.mdf文件

时间:2011-07-15 12:07:11

标签: sql-server ms-access batch-file

我想将ms访问数据库(.mdb)复制到sql server数据库(.mdf)。我用sql server 导入和导出数据服务做到了。但我希望它定期或特定时间复制数据。有可能吗?我试图创建一个批处理文件

copy /y "E:\Dinesh Work\for-reports.mdb" "C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\for-reports.mdf" 

但它会出现以下错误:

The process cannot access the file because it is being used by another process.

我的sql server数据库中有与msaccess数据库相同的表。是否有批处理文件或其他任何解决方案。

任何建议将不胜感激。
提前致谢。

3 个答案:

答案 0 :(得分:3)

这听起来好像您想使用Access数据库编辑SQL Server数据库中的数据  这是对的吗?

如果是,您是否真的需要复制数据?
您还可以从Access链接到SQL Server表。

这样,Access中的表看起来像普通的本地Access表,但它们实际上只是指向SQL Server表的链接。您可以在Access中编辑这些表中的数据,但实际上您正在直接写入SQL Server数据库。

以下是一些如何进行设置的示例:
Link to SQL Server data
Access to SQL Server: Linking Tables

答案 1 :(得分:1)

MDB和MDF文件是完全不同的类型。你不能只是复制它们。

您可以尝试设置SSIS任务来进行常规数据传输 - 如果您熟悉该术语,则可以使用ETL。

编辑:您看到文件锁定错误的原因是因为SQL Server在数据库运行时维护对MDF文件的锁定。要移动或复制它,您需要使该特定数据库脱机。

答案 2 :(得分:1)

正如@Yuck所说,你不能只是复制文件并重命名,你需要像ETL这样的东西,或者只是一个导出数据的工具。

我做了xportdsl从h2database复制到mssql,mssql复制到oracle http://code.google.com/p/xportdsl/

我使用gorm和一个hacky dsl,但是它仍在工作

您可以编写bat文件脚本来执行类似java -jar xportdsl.jar test001.txt

的操作