推荐复制SqlServer数据库的方法
发布时间:2023-08-11 15:01:02 所属栏目:MsSql教程 来源:
导读:在目前的工作中需要解决复制整个sqlServer数据库的问题,复制的内容包括数据库大纲、数据库中的存储过程、函数、表结构、主外键关系以及表中的所有数据等,也就是说copy版本与原数据库一模一样。经过一段时间的摸索,
在目前的工作中需要解决复制整个sqlServer数据库的问题,复制的内容包括数据库大纲、数据库中的存储过程、函数、表结构、主外键关系以及表中的所有数据等,也就是说copy版本与原数据库一模一样。经过一段时间的摸索,找到的一个比较简单的解决方案是: (1)在复制数据库之前,先备份该数据库到文件。 (2)依据备份文件创建新的数据库,并Restore即可。 备份数据库可用如下sql语句: <div class="codetitle"><a style="CURSOR: pointer" data="39527" class="copybut" id="copybut39527" onclick="doCopy('code39527')"> 代码如下: <div class="codebody" id="code39527"> string.Format("backupdatabase{0}todisk='{1}';",dbname,bakFilePath) 依据备份文件创建并Restore新数据库可以使用如下存储过程实现: <div class="codetitle"><a style="CURSOR: pointer" data="31241" class="copybut" id="copybut31241" onclick="doCopy('code31241')"> 代码如下: <div class="codebody" id="code31241"> CREATEPROCEDUREcopyDB ( @newdbnamevarchar(50),--新数据库名称 @dbDataDirPathvarchar(100),--数据库安装的Data文件夹目录路径 @souredbnamevarchar(100),--源数据库名称 @soureBackupFilePATHvarchar(100)--源数据库备份文件的路径 ) AS declare@sqlvarchar(3000) set@sql=' createdatabase'+@newdbname+' ON ( name='+@souredbname+'_Data, filename='''+@dbDataDirPath+@newdbname+'_Data.mdf'', SIZE=10, FILEGROWTH=15% ) logoN ( name='''+@souredbname+'_Log'', filename='''+@dbDataDirPath+@newdbname+'_Log.LDF'', SIZE=5MB, MAXSIZE=25MB, FILEGROWTH=5MB ) --开始还原 RESTOREDATABASE'+@newdbname+'fromdisk='''+@soureBackupFilePATH+'''WITHREPLACE ' exec(@sql) GO 测试的代码如下: <div class="codetitle"><a style="CURSOR: pointer" data="9215" class="copybut" id="copybut9215" onclick="doCopy('code9215')"> 代码如下: <div class="codebody" id="code9215"> IListparaList=newList(); SPParameterpara1=newSPParameter("newdbname",ParameterDirection.Input,"EASNew9"); paraList.Add(para1); SPParameterpara2=newSPParameter("dbDataDirPath",@"C:\ProgramFiles\MicrosoftsqlServer\MSsql\Data\"); paraList.Add(para2); SPParameterpara3=newSPParameter("souredbname","AutoSchedulerSystem"); paraList.Add(para3); SPParameterpara4=newSPParameter("soureBackupFilePATH",@"d:\sqlDatabase\AutoSchedulerSystem"); paraList.Add(para4); IDictionary<string,object>outParas=null; Program.DataAccesser.GetSPAccesser(null).ExcuteNoneQuery("copyDB",paraList,outoutParas); (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐