【问题标题】:How to copy SQL Server database from Access如何从 Access 复制 SQL Server 数据库
【发布时间】:2012-03-16 08:25:05
【问题描述】:

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

【问题讨论】:

  • 您想将数据从 Access DB 复制到 SQL DB,还是从 Access UI 访问这个纯 SQL DB。当您说复制数据库时,您是指复制数据还是完整的数据库?
  • 所有数据都在 SQL DB 中,通过链接表访问。我想创建新数据库作为另一个数据库的副本。目前我们通过备份/恢复 SSMS 来实现。
  • 您可能想阅读blog.sqlauthority.com/2011/05/27/…blog.sqlauthority.com/2011/05/07/… 您应该能够从 Access 运行脚本。

标签: sql-server ms-access


【解决方案1】:

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

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

删除数据库(删除它)也会有同样的问题。除非您在数据库上没有连接,否则它不会丢失。

【讨论】:

    【解决方案2】:

    这是我的最终解决方案:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 2021-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多