2

我有一个 Sql server 2008 数据库

有没有办法使用 Sql 查询或存储过程创建新数据库并将现有数据库对象的模式复制到新创建的数据库

4

1 回答 1

1

首先,您需要对要复制的数据库进行完整备份:

BACKUP DATABASE Database1
 TO DISK = 'X:\FullPath\AdvWorksData.bak'
   WITH FORMAT;

whereX:\FullPath是您可以在磁盘上备份到的位置的完整路径。

接下来你需要创建新的数据库(如果你还没有):

CREATE DATABASE Database2;

最后,您需要在该数据库的顶部进行恢复:

RESTORE FILELISTONLY 
   FROM Database1;

RESTORE DATABASE Database2
   FROM Database1
   WITH MOVE 'Database1_Data' TO 'X:\FullPath\Database2.mdf',
   MOVE 'Database1_Log' TO 'X:\FullPath\Database2.ldf';
GO

第二个数据库文件所在X:\FullPath的完整路径在哪里。

一些注意事项

  1. MOVE 'Database1_Data''Database1_Log'是默认的逻辑文件名。这些可能不同。您可以在数据库的属性下找到这些逻辑名称。
  2. 'X:\FullPath\Database2.mdf'并且'X:\FullPath\Database2.ldf'可能不会同时存在于同一位置,并且可能与默认位置不同。您可以在数据库的属性下找到这些位置。
于 2013-07-17T15:28:42.610 回答