自动生成数据库还原

CREATE procedure proc_Create_DB
@createDBName varchar(200),@sqlUid varchar(100),@sqlPwd varchar(100),@c_companyCode char(12),@dbAdr varchar(50),@dbSize char(10),@D_syscode varchar(50)

as
Begin
 
 --创建数据库
 execute  ('IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'''+@createDBName+''')'+
  'DROP DATABASE ['+@createDBName+']'+
 '; '+
 'CREATE DATABASE ['+@createDBName+']'+
 '; '+
 'exec sp_addlogin '''+@sqlUid+''','''+@sqlPwd+''','''+@createDBName+'''')
 ;

 --还原数据库并移动到数据库指定的盘符
 execute('RESTORE DATABASE '+@createDBName+' FROM DISK=''C:/oneTone_db_2008.db'''+
 ' with '+
 ' move ''oneTone_db_2008'' to ''C:/Program Files/Microsoft SQL Server/MSSQL/Data/'+@createDBName+'.mdf'','+
 ' move ''oneTone_db_2008_log'' to ''C:/Program Files/Microsoft SQL Server/MSSQL/Data/'+@createDBName+'_log.ldf'','+
 ' replace')
 ;

 --修改数据库逻辑文件名与新建的数据名同名:
 execute('Alter DataBase '+@createDBName+
 ' MODIFY FILE(NAME=''oneTone_db_2008'',NEWNAME='''+@createDBName+''')'+
 '  Alter DataBASE '+@createDBName+
 '  MODIFY FILE(NAME=''oneTone_db_2008_log'',NEWNAME='''+@createDBName+'_log'')')
 ;

 --添加用户
 --给用户添加数据库中
 --把用户添加在角色中

 execute ('use '+@createDBName+';  exec sp_grantdbaccess '''+@sqlUid+''''+
 ';  '+
 'EXEC sp_addrolemember ''db_owner'', '''+@sqlUid+''''+
 ';  ')
 ;

 insert into [com-edudb2009]..k_dbInfo(c_companyCode,D_syscode,D_dbName,D_dbUserName,D_dbpwd,D_dbAdr,D_dbSize) values (@c_companyCode,@D_syscode,@createDBName,@sqlUid,@sqlPwd,@dbAdr,@dbSize)

End
GO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值