复制SqlServer数据库
发布时间:2020-12-12 15:39:17 所属栏目:MsSql教程 来源:网络整理
导读:在目前的工作中需要解决复制整个SqlServer数据库的问题,复制的内容包括数据库大纲、数据库中的存储过程、函数、表结构、主外键关系以及表中的所有数据等,也就是说copy版本与原数据库一模一样。经过一段时间的摸索,找到的一个比较简单的解决方案是: (1)
在目前的工作中需要解决复制整个SqlServer数据库的问题,复制的内容包括数据库大纲、数据库中的存储过程、函数、表结构、主外键关系以及表中的所有数据等,也就是说copy版本与原数据库一模一样。经过一段时间的摸索,找到的一个比较简单的解决方案是: ???依据备份文件创建并Restore新数据库可以使用如下存储过程实现: CREATE ? PROCEDURE ?CopyDB( @newDbName ? varchar ( 50 ),?? -- 新数据库名称 @dbDataDirPath ? varchar ( 100 ),? -- 数据库安装的Data文件夹目录路径 @soureDbName ? varchar ( 100 ),? -- 源数据库名称 @soureBackupFilePATH ? varchar ( 100 ) -- 源数据库备份文件的路径 ) AS declare ? @sql ? varchar ( 3000 ) set ? @sql = ' create?database? ' + @newDbName + ' ON ( ??name= ' + @soureDbName + ' _Data, ??filename= ''' + @dbDataDirPath + @newDbName + ' _Data.mdf '' , ???SIZE?=?10, ???FILEGROWTH?=?15%? ) LOG?ON ( ??name= ''' + @soureDbName + ' _Log '' , ??filename= ''' + @dbDataDirPath + @newDbName + ' _Log.LDF '' , ???SIZE?=?5MB, ???MAXSIZE?=?25MB, ???FILEGROWTH?=?5MB ) --开始还原 RESTORE?DATABASE? ' + @newDbName + ' ?from?disk= ''' + @soureBackupFilePATH + ''' ?WITH?REPLACE ' exec ( @sql ) GO
????????????????SPParameter?para1? = ? new ?SPParameter( " newDbName " ,?ParameterDirection.Input,? " EASNew9 " ); ????????????????paraList.Add(para1); ????????????????SPParameter?para2? = ? new ?SPParameter( " dbDataDirPath " ,? @" C:/Program?Files/Microsoft?SQL?Server/MSSQL/Data/ " ); ????????????????paraList.Add(para2);? ????????????????SPParameter?para3? = ? new ?SPParameter( " soureDbName " ,? " AutoSchedulerSystem " ); ????????????????paraList.Add(para3); ????????????????SPParameter?para4? = ? new ?SPParameter( " soureBackupFilePATH " ,? @" d:/sqlDatabase/AutoSchedulerSystem " ); ????????????????paraList.Add(para4); ????????????????IDictionary < string ,? object > ?outParas? = ? null ; ????????????????Program.DataAccesser.GetSPAccesser( null ).ExcuteNoneQuery( " CopyDB " ,?paraList,? out ?outParas); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |