关闭

SQL脚本批量建库,批量还原库,批量删除库

发表于:2013-4-16 09:44

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:tiana0    来源:51Testing软件测试网采编

  在我们的开发工作中,经常会面临这样的问题:为了测试需要建立n(n当然不是1,也不是2,而是100,甚至更大)多个与实际环境所使用的数据库相同的数据库。要是靠手工一个接一个的来建立我们所需要的库,当然是可以的。不过这种重复的体力劳动往往让人难以忍受。为了避免纯手工的建库操作,可以考虑使用SQL脚本来完成我们的工作。

  使用SQL脚本完成的主要的工作包括:批量建n个库,使用备份文件批量还原n个库,测试完成后,批量删除测试库。

  1、批量建库

  批量建库的SQL脚本如下:

DECLARE @sql NVARCHAR(200)
DECLARE @dbname NVARCHAR(200)
DECLARE @count NVARCHAR(10)

DECLARE @n int
SET @n=1

WHILE @n<101
BEGIN
SET @count=LTRIM(STR(@n))
SET @dbname='TESTDB_'+ @count
SET @sql='CREATE DATABASE'+@dbname
EXEC(@sql)
SET @n=@n+1
END

  上面的批量建库脚本,使用循环建立了100个库,修改循环条件(@n<101)即可建立自己想要的个数的库。使用此脚本进行批量建库时,所建的库的名称都含有前缀'TESTDB_',只是后面的编号不同。且建立的库都被保存到SQL Server安装时默认的数据库文件保存文件夹下。要想建立的数据库保存到指定的文件夹下,可以采用下面的建库脚本。

DECLARE @sql NVARCHAR(200)
DECLARE @dbname NVARCHAR(200)
DECLARE @mdfname NVARCHAR(200)
DECLARE @ldfname NVARCHAR(200)
DECLARE @filename NVARCHAR(200)
DECLARE @logname NVARCHAR(200)
DECLARE @count NVARCHAR(10)

DECLARE @n int
SET @n=1


WHILE @n<101
BEGIN
SET @count=LTRIM(STR(@n))
SET @dbname='TESTDB_'+ @count
SET @mdfname='TESTDB_0'
SET @ldfname='TESTDB_0_log'
SET @filename='E:\DBTest\DATA\'+@dbname+'.mdf'
SET @logname='E:\DBTest\DATA\'+@dbname+'.ldf'
SET @sql='CREATE DATABASE'+@dbname+'ON(NAME='''+@mdfname+''',FILENAME='''+@filename+''') LOG ON(NAME='''+@ldfname+''',FILENAME='''+@logname+''')'
EXEC(@sql)
SET @n=@n+1
END

  执行上面的脚本,就将含有逻辑名'TESTDB_0'的数据库文件TESTDB_n.mdf 和含有逻辑名'TESTDB_0_log'的日志文件TESTDB_n_log.ldf将会被存储在'E:\DBTest\DATA\'路径下。关于逻辑文件名,将会在其他文章中进行介绍,敬请期待。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号