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

Posted

技术标签:

【中文标题】如何将 .mdb 文件复制到 .mdf 文件【英文标题】:How to copy .mdb file to .mdf file 【发布时间】:2011-07-15 12:07:10 【问题描述】:

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

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

但它给出了以下错误:

该进程无法访问该文件,因为它正被另一个进程使用。

我的 sql server 数据库中有与 msaccess 数据库相同的表。有没有批处理文件或其他东西的解决方案。

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

【问题讨论】:

【参考方案1】:

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

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

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

以下是一些如何设置的示例:Link to SQL Server dataAccess to SQL Server: Linking Tables

【讨论】:

【参考方案2】:

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

如果您熟悉该术语,您可以尝试设置一个 SSIS 任务来执行常规数据传输 - 类似于 ETL。

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

【讨论】:

【参考方案3】:

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

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

我使用了 gorm 和一个 hacky 的 dsl,它仍然可以工作

您可以编写一个 bat 文件来执行类似 java -jar xportdsl.jar test001.txt 的内容

【讨论】:

以上是关于如何将 .mdb 文件复制到 .mdf 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何打开 *.mdf 文档

如何使用 PHP 将 mdb 文件转换为 mysql 文件或 mysql 命令?

分离本地数据库.mdf,复制,附加新文件

SQL2000的数据库文件后缀是.mdf和.ldf文件能用啥方法直接下载下来?

sql2008 怎么打开.mdf的文件

SQL恢复master数据库方法 只有mdf文件的数据库如何恢复