0

我想以编程方式创建数据库的克隆。我的要求是,我有一个默认的数据库主模板,我想在我的应用程序执行时创建一个新数据库,这个新数据库将是现有主数据库的副本,只是它的名称将被更改。

4

2 回答 2

2

一种选择是创建主数据库的备份并使用脚本以不同的名称恢复它:

RESTORE DATABASE [CopyOfMaster] FROM  
DISK = N'C:\Temp\Master.bak' 
WITH  FILE = 1,  
MOVE N'Master' TO N'C:\Temp\copy.mdf',  
MOVE N'Master_log' TO N'C:\Temp\copy_log.ldf',  
NOUNLOAD
GO

参数说明:

  • DISK- 备份文件的路径和文件
  • MOVE- 原始数据库中的每个文件组都需要一行。您为每个文件组指定新的文件名和路径

更多阅读MSDN

于 2013-11-07T06:01:40.820 回答
1

您需要编写主模板数据库脚本并将脚本保存到文件中。使用 SQL Server Management Studio,右键单击您的主模板数据库并选择“脚本数据库为”。您必须将脚本中的数据库名称更改为某个标识符,您可以执行字符串替换以在运行时更改名称。

在您的代码中,您可以加载脚本文件并执行以创建具有不同名称的数据库。您可以使用 SqlCommand 来执行加载的脚本 ( http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.aspx )

您还可以使用命令行“sqlcmd”实用程序或 SQL Server 管理对象 (SMO)。虽然我还没有探索过这些选项中的任何一个。

于 2013-11-07T07:42:12.537 回答