我需要将大约40个数据库从一台服务器复制到另一台服务器.新数据库应该有新的名称,但所有表、数据和索引都与原始数据库相同.到目前为止,我一直:

1) creating each destination database
2) using the "Tasks->Export Data" command to create and populate tables for each database individually
3) rebuilding all of the indexes for each database with a SQL script

每个数据库只有三个步骤,但我打赌有一种更简单的方法.有没有MS SQL Server专家有什么建议?

推荐答案

考虑到要在多个数据库上执行此操作,您需要的是一个简单的脚本化解决方案,而不是点击式解决方案.

这是我保留的备份脚本.

(on source server...)
BACKUP DATABASE Northwind
  TO DISK = 'c:\Northwind.bak'

(target server...)
RESTORE FILELISTONLY
  FROM DISK = 'c:\Northwind.bak'

(look at the device names... and determine where you want the mdf and
ldf files to go on this target server)

RESTORE DATABASE TestDB
  FROM DISK = 'c:\Northwind.bak'
  WITH MOVE 'Northwind' TO 'c:\test\testdb.mdf',
  MOVE 'Northwind_log' TO 'c:\test\testdb.ldf'
GO

Database相关问答推荐

发布 Oracle 和 SQL Server 性能测试是否违反许可?

当我们需要触发程序的返回值时?

数据库术语中的relation关系是什么意思?

从 DbDataReader 读取数据的最快方法是什么?

MongoDB:查询具有两个相等字段 $match 和 $eq 的文档

使用 2 个进程处理数据库

在 PostgreSQL 上获取数据库创建日期

SqlAlchemy 中的动态表创建和 ORM 映射

限制来自本地主机的 MySQL 连接以提高安全性

TransactionScope 是如何工作的?

限制 SQL JOIN

在数据库中存储业务逻辑

使用带有联合和 CLOB 字段的 Select 时出现错误 ORA-00932

归一化 - 2NF 与 3NF

为什么 DBMS 不支持 ASSERTION

复制没有 LOCK 权限的 postgres 数据库

NoSQL 数据库是否使用或需要索引?

在两列之间 Select 最近的日期

使用命令行在 Mysql 中导入压缩文件

Cassandra - 事务支持