复制SqlServer数据库的方法
发布时间:2024-01-26 22:46:26
标签:复制SqlServer数据库的方法
在目前的工作中需要解决复制整个SqlServer数据库的问题,复制的内容包括数据库大纲、数据库中的存储过程、函数、表结构、主外键关系以及表中的所有数据等,也就是说copy版本与原数据库一模一样。经过一段时间的摸索,找到的一个比较简单的解决方案是:
(1)在复制数据库之前,先备份该数据库到文件。
(2)依据备份文件创建新的数据库,并Restore即可。
备份数据库可用如下Sql语句:
string.Format("backup database {0} to disk = '{1}';", dbName, bakFilePath)
依据备份文件创建并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
测试的代码如下:
IList<SPParameter> paraList = new List<SPParameter>();
SPParameter para1 = new SPParameter("newDbName", ParameterDirection.Input, "EASNew9");
paraList.Add(para1);
SPParameter para2 = new SPParameter("dbDataDirPath", ParameterDirection.Input, @"C:\Program Files\Microsoft SQL Server\MSSQL\Data\");
paraList.Add(para2);
SPParameter para3 = new SPParameter("soureDbName", ParameterDirection.Input, "AutoSchedulerSystem");
paraList.Add(para3);
SPParameter para4 = new SPParameter("soureBackupFilePATH", ParameterDirection.Input, @"d:\sqlDatabase\AutoSchedulerSystem");
paraList.Add(para4);
IDictionary<string, object> outParas = null;
Program.DataAccesser.GetSPAccesser(null).ExcuteNoneQuery("CopyDB", paraList, out outParas);
0
投稿
猜你喜欢
- 目录一、时间序列数据的生成二、Pandas设置索引三、 时间序列数据的截取四、Pandas重复值处理4.1 查询是否有重复值4.2 去除重复
- 注:以下文章原文来自于Dr Charles Severance 的 《Python for Informatics》11.3 组合查询和抽取
- numpy.flip(m, axis=None)Reverse the order of elements in an array alon
- 本文实例讲述了js找出5个数中最大的一个数和倒数第二大的数实现方法。分享给大家供大家参考,具体如下:最大的一个数 :方法1:<scri
- 在数字图像中,往往存在着一些特殊形状的几何图形,像检测马路边一条直线,检测人眼的圆形等等,有时我们需要把这些特定图形检测出来,hough变换
- go设置GOROOT和GOPATHgo 里面有两个非常重要的环境变量 GOROOT 和 GOPATH,其中 GOROOT 是安装 go 的路
- 本文描述通过统计分析出医院信息系统需分区的表,对需分区的表选择分区键,即找出包括在你的分区键中的列(表的属性),对大型数据的管理比较有意义,
- WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一。
- 目录1. jieba 分词2. pkuseg 分词3. FoolNLTK 分词4. THULAC大家好,我是安果!分词在自然语言处理中有着常
- 分区视图联接来自一组成员的水平分区数据,使数据看起来象来自同一张表。SQL Server 2000 区分本地分区视图和分布式分区视图。在本地
- 本文实例讲述了Python数学形态学。分享给大家供大家参考,具体如下:一 原始随机图像1、代码import numpy as npimpor
- 1. 简介本文介绍使用sync.Once来实现单例模式,包括单例模式的定义,以及使用sync.Once实现单例模式的示例,同时也比较了其他单
- 本文实例为大家分享了python实现俄罗斯方块的具体代码,供大家参考,具体内容如下#coding=utf-8 from tkinter im
- 本文实例讲述了python切片的步进、添加、连接简单操作。分享给大家供大家参考,具体如下:步进切片:#coding:utf-8a="
- 1. 案例【三酷猫列表记账】操作需求:(1)用列表对象记录三酷猫每天钓鱼的种类和数量(2)统计三酷猫所钓水产品的总数量和预计收获金额(3)打
- 字符串打印打印函数echo: 打印值,用于单值print_r(): 人类可读方式打印,用于数组var_dump():打印结构和类型,一般用于
- 从视频中提取音频安装 moviepypip install moviepy相关代码:audio_file = work_path +
- 一、设置画布turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置turtle.screensize(canvwidth=600
- 使用os.environ来读取和修改环境变量:import osprint (os.environ["TEMP"])my
- 奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christo