2012-03-16 89 views
0

我们有一个Access用户界面到Sql Server数据库。用户连接到许多数据库(包含具有不同数据的相同表),可以在它们之间进行选择。我们使用它来进行版本控制。我们希望让他能够从Access UI中复制和删除数据库。他应该至少可以复制到同一台服务器上,最好也可以复制到其他服务器上。如何从Access复制SQL Server数据库

+0

你想将数据从Access数据库的复制到SQL数据库,或者是这种纯SQL数据库的从访问用户界面访问。当你说复制数据库的意思是复制数据或完整的数据库? – Jaques 2012-03-16 08:45:55

+0

所有数据都在SQL DB中,通过链接表进行加密。我想创建新的数据库作为另一个副本。目前我们通过SSMS的备份/恢复来完成它。 – Oliv 2012-03-16 08:55:00

+0

您可能想阅读http://blog.sqlauthority.com/2011/05/27/sql-server-copy-database-from-instance-to-another-instance-copy-paste-in-sql-server/和http://blog.sqlauthority.com/2011/05/07/sql-server-2008-2008-r2-create-script-to-copy-database-schema-and-all-the-objects-data-schema -stored-procedure-functions-triggers-tables-views-constraints-and-all-other-database-objects /你应该能够从Access运行脚本。 – Fionnuala 2012-03-16 09:01:58

回答

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 
0

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

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

删除数据库(删除它)将有同样的问题。除非数据库上没有连接,否则它不会掉线。

+0

显然不是:http://msdn.microsoft.com/en-us/library/ms188664.aspx – Fionnuala 2012-03-16 09:22:31