sql - 仅将 Sql Server 2008 数据库架构复制到同一台计算机上的另一个 Sql Server 2008 数据库

标签 sql sql-server database sql-server-2008 stored-procedures

我有一个Sql server 2008数据库

有什么方法可以创建新数据库并将现有数据库对象的架构复制到新创建的数据库使用 Sql 查询或存储过程

最佳答案

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

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

其中 X:\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' 可能不在同一位置并且 可以不同于默认位置。您可以在数据库的属性下找到这些位置。

关于sql - 仅将 Sql Server 2008 数据库架构复制到同一台计算机上的另一个 Sql Server 2008 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17703775/

相关文章:

php - mySQL表单输入,循环插入,不是插入

MySQL 将行转为动态数量的列

sql - 如何在 SQL Server 2008 中获取本周的开始日期?

sql - 仅替换 SQL 中的部分字符串

database - 为什么lucene不需要复合索引,而关系数据库需要?

mysql - 在 SQL 中计算百分比

sql - 在SQL Server 2005中,如何设置整数列以确保值大于0?

sql语句删除早于XXX的记录,只要超过YY行

c# - SQL Server - DATEDIFF 函数耗时太长

sql - postgresql 中奇怪的间隔