我想以编程方式创建数据库的克隆。我的要求是,我有一个默认的数据库主模板,我想在我的应用程序执行时创建一个新数据库,这个新数据库将是现有主数据库的副本,只是它的名称将被更改。
问问题
1045 次
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 回答