复制SqlServer数据库的方法
2022-11-12 09:54:22
内容摘要
这篇文章主要为大家详细介绍了复制SqlServer数据库的方法,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!在目前的工作中需要解决复制整个
文章正文
这篇文章主要为大家详细介绍了复制SqlServer数据库的方法,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
在目前的工作中需要解决复制整个SqlServer数据库的问题,复制的内容包括数据库大纲、数据库中的存储过程、函数、表结构、主外键关系以及表中的所有数据等,也就是说copy版本与原数据库一模一样。经过一段时间的摸索,找到的一个比较简单的解决方案是:(1)在复制数据库之前,先备份该数据库到文件。(2)依据备份文件创建新的数据库,并Restore即可。备份数据库可用如下Sql语句:代码如下:
1 2 | <code>string.Format( "backupdatabase{0}todisk='{1}';" ,dbName,bakFilePath) </code> |
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <code>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 </code> |
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 | <code>IList<SPParameter>paraList=newList<SPParameter>(); SPParameterpara1=newSPParameter( "newDbName" ,ParameterDirection.Input, "EASNew9" ); paraList.Add(para1); SPParameterpara2=newSPParameter( "dbDataDirPath" ,ParameterDirection.Input,@"C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\"); paraList.Add(para2); SPParameterpara3=newSPParameter( "soureDbName" ,ParameterDirection.Input, "AutoSchedulerSystem" ); paraList.Add(para3); SPParameterpara4=newSPParameter( "soureBackupFilePATH" ,ParameterDirection.Input,@ "d:\sqlDatabase\AutoSchedulerSystem" ); paraList.Add(para4); IDictionary<string,object>outParas=null; Program.DataAccesser.GetSPAccesser(null).ExcuteNoneQuery( "CopyDB" ,paraList,outoutParas); </code> |
注:关于复制SqlServer数据库的方法的内容就先介绍到这里,更多相关文章的可以留意
代码注释