创建数据库(脚本实现)

-- 创建历史数据库
if object_id('[dbo].[spr_create_his_db]') is not null
   drop procedure [dbo].[spr_create_his_db]
go

create proc [dbo].[spr_create_his_db]
(  
   @hisdbname varchar(30) -- 要创建的历史数据库名称
)
as
set nocount on

-- 当前数据库名
declare @strCurDBName varchar(30)

select @strCurDBName = name from master..sysDataBases 
where dbid = (select dbid from master..sysProcesses where spid = @@spid)

--print @strCurDBName

-- 如果VM2011为数据库名称
--if db_id('VM2011') = (select dbid from master..sysprocesses where spid = @@spid)
--begin
--    print 'VM2011 is Current DB.'
--end

declare @strFindCase varchar(30)
declare @strCurDBMdf varchar(260)
declare @strCurDBLdf varchar(260)

-- 数据存储文件
set @strFindCase = '%\' + @strCurDBName + '%.mdf'
select @strCurDBMdf = filename from sysfiles
where filename like @strFindCase

-- 日志文件
set @strFindCase = '%\' + @strCurDBName + '%.ldf'
select @strCurDBLdf = filename from sysfiles
where filename like @strFindCase

-- 生成要创建数据库的文件路径
declare @strCreateDBMdf varchar(260)
declare @strCreateDBLdf varchar(260)
set @strCreateDBMdf = left(@strCurDBMdf, len(@strCurDBMdf) - charindex('\', reverse(@strCurDBMdf)) + 1) + @hisdbname + '.mdf'
set @strCreateDBLdf = left(@strCurDBLdf, len(@strCurDBLdf) - charindex('\', reverse(@strCurDBLdf)) + 1) + @hisdbname + '_Log.ldf'

-- 创建数据库
declare @strCreateSql varchar(500)
set @strCreateSql = 
'create database ' + @hisdbname + '
on
(
name = ' + @hisdbname + ',
filename = ''' + @strCreateDBMdf + ''',
size = 100MB,
filegrowth = 100MB
)
log on
(
name = ' + @hisdbname + '_log,
filename = ''' + @strCreateDBLdf + ''',
size = 3MB,
filegrowth = 10%
)'
--print @strCreateSql

exec (@strCreateSql)

return
set nocount off


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值