我有一个 Sql server 2008 数据库
有没有办法使用 Sql 查询或存储过程创建新数据库并将现有数据库对象的模式复制到新创建的数据库
我有一个 Sql server 2008 数据库
有没有办法使用 Sql 查询或存储过程创建新数据库并将现有数据库对象的模式复制到新创建的数据库
首先,您需要对要复制的数据库进行完整备份:
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
的完整路径在哪里。
MOVE 'Database1_Data'
和'Database1_Log'
是默认的逻辑文件名。这些可能不同。您可以在数据库的属性下找到这些逻辑名称。'X:\FullPath\Database2.mdf'
并且'X:\FullPath\Database2.ldf'
可能不会同时存在于同一位置,并且可能与默认位置不同。您可以在数据库的属性下找到这些位置。