复制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)

相关推荐

  • SQL Server数据库复制失败的原因及解决方法

    在SQL Server数据库操作中,对数据库复制时出现了以下的错误,错误信息如下图所示: SQL Server数据库复制失败的原因及解决方案 出现上面的提示信息,会是什么原因导致的呢?笔者经过一番推敲终于找到了上述的原因. 原因:在复制数据库时,必须先停止mssqlserver服务,然后才能复制. 解决方法: 开始-->运行-->services.msc打开服务管理器,找到mssqlserver服务,然后停止该服务. 或者 开始-->运行-->cmd-->net stop m

  • MYSQL数据库导入数据时出现乱码的解决办法

    首先在新建数据库时一定要注意生成原数据库相同的编码形式,如果已经生成可以用phpmyadmin等工具再整理一次,防止数据库编码和表的编码不统一造成乱码. 方法一: 通过增加参数 –default-character-set = utf8 解决乱码问题 mysql -u root -p password < path_to_import_file –default-character-set = utf8 方法二: 在命令行导入乱码解决 1. use database_name; 2. set n

  • MyEclipse连接MySQL数据库报错解决办法

    我们现在一般网站都是利用的MySQL数据库搭建网站的,但是在网上看到很多网友吐槽数据库连接不上的问题,现在我就结合相关资料向提出一些我个人的见解,希望对大家解决问题有帮助. 一般MySQL连接不上,可能有两大原因:1.MyEclipse配置错误 2.MySQL配置不当. 一.我们一般的连接步骤如下: 1.在MyEclipse中连接MySQL数据库:依次点击window-->show view-->other-->MyEclipse Database-->DB Browser 图一:

  • 复制SqlServer数据库的方法

    在目前的工作中需要解决复制整个SqlServer数据库的问题,复制的内容包括数据库大纲.数据库中的存储过程.函数.表结构.主外键关系以及表中的所有数据等,也就是说copy版本与原数据库一模一样.经过一段时间的摸索,找到的一个比较简单的解决方案是: (1)在复制数据库之前,先备份该数据库到文件. (2)依据备份文件创建新的数据库,并Restore即可.    备份数据库可用如下Sql语句:  复制代码 代码如下: string.Format("backup database {0} to disk

  • sqlserver数据库导入方法的详细图文教程

    目录 第一种方法: 第二种方法: 总结 第一种方法: ****1.****打开SQL Server,写好登录名和密码点击连接. ****2.****打开数据库,右键某一个数据库,选择“新建查询(Q)”. ****3.****再代码界面输入如下代码,点击F5键或者点击运行按钮即可. 代码如下: EXEC sp_attach_db @dbname = '你的数据库名', @filename1 = 'mdf文件路径(包缀名)', @filename2 = 'Ldf文件路径(包缀名)' ****4.**

  • 自动定时备份sqlserver数据库的方法

    下面是我已经证实可用的自动备份的方法. 1.打开企业管理器->管理->sql server代理 2.新建一个作业,作业名称随便取,例如:data备份,所有者选择sa,当然你也可以选择其他用户,前提是该用户有执行作业的权限: 3.点击步骤标签,进入步骤面板.新建步骤,步骤名可以随便填写,如步骤1,类型和数据库默认,不需要修改.命令中写入以下语句: BACKUP DATABASE [数据库名] TO DISK = N'F:\\databack\\firenews备份' WITH NOINIT ,

  • Java中String的JdbcTemplate连接SQLServer数据库的方法

    很久没写文章了,一方面是最近几个月比较忙,没太多时间,另一方面是最近拖延症严重,写文章的想法总是一拖再拖.今天找一个小案例写一下,与懒惰对抗一下. 首先说一下背景,我们在项目中做数据持久化一般都是用mybatis或者hibernate开发框架,进行数据库连接和操作,最近做GIS仿真产品研发,根据需求需要保存三部分数据:1.业务数据,数据量比较小:2.GIS数据,需要用到空间关系:3.物联数据,数据量大,在我们开发自测阶段数据量就可以达到每天百万以上.根据以上数据特点,我们使用了传统的MySQL数

  • 重命名SQLServer数据库的方法

    企业管理器中没有改数据库名的功能,如果一定要用企业管理器来实现,你可以备份数据库,然后还原,在还原时候可以指定另一个库名,然后再删除旧库就行了. 这里以 SQLServer 20000 为例,旧数据库名字为 Admin10000, 新数据库名字为 jb51.net. 第一步.备份数据库 打开企业管理器 -- 右键一个数据库 -- 所有任务 -- 备份数据库 -- 目的--备份到中选择添加 -- 输入一个备份的文件名(注意,如果原来有文件名,要删除它) -- 确定 第二步.还原数据库,并指定一个新

  • sqlserver复制数据库的方法步骤(图文)

    复制数据库前要先确认目标数据库的服务是否启动 主要是SQL Server (MSSQLSERVER)这个服务要启动起来其他的看自己的需求 复制数据库 下一步 输入源数据库的地址使用sql server身份验证 输入目标的数据库地址 同样使用sql server认证登录 使用sql管理对象方法 选择要复制的数据库 这两个看自己的需求选择,然后点击下一步 直接下一步 直接下一步 这个看自己的需求定时间 点击完成即可 到此这篇关于sqlserver复制数据库的方法步骤(图文)的文章就介绍到这了,更多相

  • SQLSERVER简单创建DBLINK操作远程服务器数据库的方法

    本文实例讲述了SQLSERVER简单创建DBLINK操作远程服务器数据库的方法.分享给大家供大家参考,具体如下: --配置SQLSERVER数据库的DBLINK exec sp_addlinkedserver @server='WAS_SMS',@srvproduct='',@provider='SQLOLEDB',@datasrc='10.131.20.100' exec sp_addlinkedsrvlogin 'WAS_SMS','false', NULL,'CustomSMS','Sql

  • C#查询SqlServer数据库并返回单个值的方法

    本文实例讲述了C#查询SqlServer数据库并返回单个值的方法.分享给大家供大家参考.具体实现方法如下: static public string GetSqlAsString(string sqlText, SqlParameter[] sqlParameters, string databaseConnectionString) { string result = ""; SqlDataReader reader; SqlConnection connection = new S

  • SQLServer数据库的各种管理方法

    本文适用范围:全面阐述SQLServer数据库的各种操作,分虚拟主机和服务器两种情况. 这篇文章比较长,请使用下面的提纲访问. 提纲 一.虚拟主机 1.安装在线企业管理器     2.注册远程企业管理器(SQL2000)     3.注册远程企业管理器(SQL2005/2008)    4.使用管理面板备份还原 二.服务器或VPS 1.新建数据库     2.附加数据库     3.备份数据库     4.还原数据库 虚拟主机 这种情况下,我们只有空间商提供的数据库IP地址.用户名和密码(有的空

  • Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例

    本文实例讲述了Python实现读取SQLServer数据并插入到MongoDB数据库的方法.分享给大家供大家参考,具体如下: # -*- coding: utf-8 -*- import pyodbc import os import csv import pymongo from pymongo import ASCENDING, DESCENDING from pymongo import MongoClient import binascii '''连接mongoDB数据库''' clie

随机推荐