首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复制数据库

复制数据库
EN

Stack Overflow用户
提问于 2013-11-28 10:56:05
回答 1查看 96关注 0票数 0

我有一个包含所有所需表的数据库,这些表是完全可用的。但是为了测试的目的,我需要复制数据库的副本,比如说100次。(我的应用程序将在每个数据库上循环执行一些脚本)。

当然,生成的数据库应该有不同的名称。使用Backup/Restore甚至Detach/Copy/Attach 100次是不可能的.因此,我想知道是否有一个脚本可以在不同的名称上循环多次复制/还原数据库?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-29 11:13:35

好的,找到了一些对我有用的东西,通过简单的而循环

代码语言:javascript
复制
DECLARE @index int
DECLARE @dbName varchar(25)
declare @HRNET varchar(200)
declare @HRNET_LOG varchar(200) 
declare @sql varchar(2000)
SET @index = 5

WHILE (@index < 200)
BEGIN

-- Construct db name and corresponding files name
SET @dbName = 'BDName' + Right('0000' + CONVERT(NVARCHAR, @index), 4) 
set @MDF = '''C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008\MSSQL\DATA\' + @dbName + '.mdf'''
SET @LDF = '''C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008\MSSQL\DATA\' + @dbName + '_1.ldf'''

-- Restore db from backup bak file
SELECT @sql = 'RESTORE DATABASE ' + @dbName + '
FROM  DISK = ''C:\DB Backup\DBName1919.bak'' 
WITH  FILE = 1,   
MOVE ''WEEKLY_UK_CO_E_REPORTING_Data'' TO ' +  @MDF + ',  
MOVE ''WEEKLY_UK_CO_E_REPORTING_Log'' TO ' + @LDF + 
', NOUNLOAD,  STATS = 10'  

exec(@sql)  


SET @index = @index + 1 

END
GO 

要检索备份路径位置(MDF和LDF),只需运行以下命令;

代码语言:javascript
复制
RESTORE FILELISTONLY 
FROM DISK = N'C:\DB Backup\DBName1919.bak'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20264184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档