【发布时间】:2012-10-03 08:26:39
【问题描述】:
我在 SQL Server 上创建了一个数据库,并在 winforms c# 中创建了一个前端用户应用程序。 它已经启动、运行并且工作正常,但是客户现在要求我设置一个测试版本来培训新员工,这样他们就可以在接受培训的同时输入虚拟数据,而不会影响“真实”的实时数据库。
当我安装数据库时,我已经编写了所有脚本,但是从那以后情况发生了变化,我不想再次编写所有表的脚本。
是否有一种快速、方便的方法可以在同一服务器上复制数据库(及其数据),但名称不同?
编辑(在托尼·霍普金森的帖子之后)
我已经做到了
exec sp_addumpdevice 'Disk','MyDatabaseBackup',N'D:\MyDatabaseBackup'
Restore Database MyDatabase From MyDatabaseBackup With File = 1,
Move 'MyDatabase' To N'C:\Program Files\Microsoft SQL
Server\MSSQL11.SQLE\MSSQL\DATA\MyDatabaseTEST.mdf',
Move 'MyDatabase_Log' To N'C:\Program Files\Microsoft SQL
Server\MSSQL11.SQLE\MSSQL\DATA\MyDatabaseTEST_log.ldf',
NORECOVERY, NOUNLOAD, STATS = 10
RESTORE LOG [MyDatabaseTEST] FROM [MyDatabaseBackup] WITH FILE = 2, NOUNLOAD, STATS = 10
exec sp_dropdevice MyDatabaseBackup
但我收到以下错误消息
消息 3234,第 16 级,状态 2,第 2 行 逻辑文件“MyDatabase”不是数据库“MyDatabase”的一部分。使用 RESTORE FILELISTONLY 列出逻辑文件名。 消息 3013,第 16 级,状态 1,第 2 行 RESTORE DATABASE 异常终止。 消息 3154,第 16 级,状态 4,第 6 行 备份集保存现有“MyDatabaseTEST”数据库以外的数据库的备份。 消息 3013,第 16 层,状态 1,第 6 行 RESTORE LOG 异常终止。 设备掉落。
【问题讨论】:
标签: sql-server