我想将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数据库相同的表。是否有批处理文件或其他任何解决方案。
任何建议将不胜感激。
提前致谢。
答案 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
的操作