如何从Access复制SQL Server数据库

时间:2012-03-16 08:25:05

标签: sql-server ms-access

我们有一个访问Sql Server数据库的UI。用户连接到许多数据库(包含具有不同数据的相同表),可以在它们之间进行选择。我们使用它进行版本控制。我们希望他能够直接从Access UI复制和删除数据库。他应该能够至少复制到同一台服务器,理想情况下也能复制到其他服务器。

2 个答案:

答案 0 :(得分:0)

备份和恢复可能是您最好的选择。还有另一种方式。但是会有一些限制。

您可以分离要复制的数据库,复制旧文件的副本,并将新文件作为新数据库附加。您的问题将是因为您使用Access连接到数据库,您将无法分离它,因为存在连接,并且必须先删除所有连接,然后才能将其分离。

删除数据库(删除它)会遇到同样的问题。除非数据库上没有连接,否则它不会丢弃。

答案 1 :(得分:0)

这是我的最终解决方案:

Dim conn As New ADODB.Connection

conn.ConnectionString = "Provider=SQLOLEDB;Data Source=" dbServer & ";" _
    & "User ID=" & user & ";Password=" & password
conn.Open

' backup
conn.Execute "BACKUP DATABASE [" & sourceDb & "] TO  [backup device] WITH NOFORMAT, NOINIT,  NAME = N'backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10"

' restore
conn.Execute "RESTORE DATABASE [" & targetDb & "] FROM  [abcosting temporary backup] WITH  FILE = 1,  NOUNLOAD,  REPLACE,  STATS = 10, " & mdf_move & ", " & ldf_move