【问题标题】:Export database from one SQL Server to another SQL Server将数据库从一个 SQL Server 导出到另一个 SQL Server
【发布时间】:2011-03-01 19:47:54
【问题描述】:

我有一个测试数据库需要导出到我们客户的测试环境中。

这将是一次性的工作。

我使用的是 SQL Server 2005(我的测试数据库是 SQL Server 2005 Express)

最好的方法是什么?

【问题讨论】:

    标签: sql-server database sql-server-2005


    【解决方案1】:

    最简单的方法

    在SSMS中备份数据库,然后在目标机器上恢复数据库。

    要在 SSMS (SQL Server Management Studio) 中执行此操作,请右键单击要备份的数据库选择 Tasks->Backup注意备份类型和 .bak 文件的路径。然后抓取该文件(.bak)并转到目标数据库服务器/机器。右键单击数据库并执行"Restore"

    在这里您可以告诉它.bak 文件的路径,数据库将在您的客户端计算机上以您指定的名称创建。

    更难但可重用的方式

    如果您真的很讨厌,您也可以编写一些 T-SQL 来备份和恢复数据库。让我知道您是否真的很讨厌,我们也可以走这条路……但是您似乎只这样做了一次,因此编写脚本可能有些矫枉过正。但是以防万一有人需要备份数据库,如果需要,您可以将其放入一个过程中:

    DECLARE @strRootPath varchar(50)
    DECLARE @BackupFile varchar(100)
    DECLARE @strDB varchar(25)
    
    SELECT @strRootPath = 'C:\SQL_BACKUPS\MyDBFolder\'
    SELECT @strDB = db_name()
    
    SELECT @BackupFile = 
          @strRootPath
        + db_name()
        + '_'
        + CONVERT(varchar(8), GetDate(), 112)               -- yyyymmdd
        + '_'
        + REPLACE(LEFT(CONVERT(varchar(8), GetDate(), 108), 5), ':', '')    -- hh:mm:ss
        + '.BAK'
    
    BACKUP DATABASE @strDB TO  DISK =@BackupFile WITH RETAINDAYS = 10, NAME = N'MyDB_DATA-Full Database Backup', STATS = 10
    
    BACKUP LOG MyDB
       TO MyDB_Log;
    

    【讨论】:

    • 这在 SSMS Express 中也可用吗?我不确定我是否遗漏了什么,但我找不到那个选项!
    • @lainie yes 使用 Management Studio Express(单独提供或作为 Express 高级版的一部分提供),它在任务下的每个数据库的右键菜单中都有备份选项。
    • @lainie 确保两台服务器具有相同的排序规则设置。例如,如果您从具有区分大小写排序规则的服务器恢复到具有不区分大小写排序规则的服务器,则在加入临时表时可能会发生烦人的错误。
    【解决方案2】:

    或者您可以使用 SQL Server Management Studio (SSMS),然后右键单击要导出的数据库,这样您将获得导出-导入数据库的新窗口。填写数据库连接的任何信息并按照步骤操作,直到您成功导出它:)

    【讨论】:

      猜你喜欢
      • 2017-12-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-02
      • 1970-01-01
      • 2014-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多