Sql server 将数据库从一台SQL Server导出到另一台SQL Server

Sql server 将数据库从一台SQL Server导出到另一台SQL Server,sql-server,database,sql-server-2005,Sql Server,Database,Sql Server 2005,我有一个测试数据库,需要导出到客户的测试环境中 这将是一个一次性的工作 我正在使用SQLServer2005(我的测试数据库是SQLServer2005Express) 最好的方法是什么?最简单的方法 在SSMS中备份数据库,然后在目标计算机上还原数据库 要在SSMS(SQL Server Management Studio)中执行此操作,请右键单击要备份的数据库,选择Tasks->backup,注意备份的类型和.bak文件的路径。然后抓取该文件(即.bak)并转到目标数据库服务器/机器。右键单

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

这将是一个一次性的工作

我正在使用SQLServer2005(我的测试数据库是SQLServer2005Express)

最好的方法是什么?

最简单的方法 在SSMS中备份数据库,然后在目标计算机上还原数据库

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

在这里,您可以告诉它.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;

或者,您可以使用SQLServerManagementStudio(SSMS),然后右键单击要导出的数据库,这样您将获得导出导入数据库的新窗口。填写数据库连接的所有信息,并按照以下步骤进行操作,直到成功导出:)

这在SSMS Express中也可用吗?我不确定我是否遗漏了什么,但我找不到那个选项@lainie是使用Management Studio Express(单独提供或作为Express advanced的一部分提供),它在“任务”下的每个数据库的右键单击菜单上都有备份选项。@lainie请确保两台服务器具有相同的排序规则设置。例如,如果从具有区分大小写排序规则的服务器还原到具有不区分大小写排序规则的服务器,则在连接临时表时可能会发生恼人的错误。