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