在一套软件中分为多用户的情况下需要为每个用户创建及初始数据库的内容,特写了以下存储过程,希望可以为有这样需求的开发者带来方便!

解决复制数据库的问题.CREATE PROCEDURE CaUserDb
解决复制数据库的问题.(
解决复制数据库的问题.
@user varchar(50),   --用户名
解决复制数据库的问题.
@soureFile varchar(100),  --原备分文件
解决复制数据库的问题.
@soureName varchar(100--原数据库名称  不需要写_Data
解决复制数据库的问题.
)
解决复制数据库的问题.
AS
解决复制数据库的问题.
declare @sql varchar(3000)
解决复制数据库的问题.
declare @sourePATH varchar(100--备份文件路径
解决复制数据库的问题.
declare @descPATH varchar(100--目标文件路径
解决复制数据库的问题.--
初始化数据库路径
解决复制数据库的问题.
set @sourePATH='d:\sqlDatabase\'
解决复制数据库的问题.
set @descPATH='d:\sqlDatabase\'
解决复制数据库的问题.set @sql='
解决复制数据库的问题.create database 前缀_
'+@user+'
解决复制数据库的问题.ON
解决复制数据库的问题.(
解决复制数据库的问题.  name=
'+@soureName+'_Data,
解决复制数据库的问题.  filename=
'''+@descPATH+'前缀_'+@user+'_Data.mdf'',
解决复制数据库的问题.   SIZE = 10,
解决复制数据库的问题.   FILEGROWTH = 15% 
解决复制数据库的问题.)
解决复制数据库的问题.LOG ON
解决复制数据库的问题.(
解决复制数据库的问题.  name=
'''+@soureName+'_Log'',
解决复制数据库的问题.  filename=
'''+@descPATH+'前缀_'+@user+'_Log.LDF'',
解决复制数据库的问题.   SIZE = 5MB,
解决复制数据库的问题.   MAXSIZE = 25MB,
解决复制数据库的问题.   FILEGROWTH = 5MB
解决复制数据库的问题.)
解决复制数据库的问题.--开始还原
解决复制数据库的问题.RESTORE DATABASE 前缀_
'+@user+' from disk='''+@sourePATH+@soureFile+''' WITH REPLACE
解决复制数据库的问题.
'
解决复制数据库的问题.
exec(@sql)
解决复制数据库的问题.
GO
解决复制数据库的问题.

相关文章: