复制SqlServer数据库的方法_MsSql

在目前的工作中需要解决复制整个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);

时间: 2024-09-30 00:27:37

复制SqlServer数据库的方法_MsSql的相关文章

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

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

复制SqlServer数据库的方法

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

重命名SQLServer数据库的方法_MsSql

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

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

本文实例讲述了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

用sql脚本创建sqlserver数据库范例语句_MsSql

下面是创建一个sqlserver数据库的代码模板,加上一个创建表的模板.开发的时候可以拷贝过去直接改动一下就可以用了. 希望能帮上忙! 复制代码 代码如下: USE [master] GO IF EXISTS(SELECT 1 FROM sysdatabases WHERE NAME=N'HkTemp') BEGIN DROP DATABASE HkTemp --如果数据库存在先删掉数据库 END GO CREATE DATABASE HkTemp ON PRIMARY --创建主数据库文件 (

sqlServer 数据库语法大全_MsSql

--数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据--数据定义CREATE TABLE --创建一个数据库表DROP TABLE --从数据库中删除表ALTER TABLE --修改数据库表结构CREATE VIEW --创建一个视图DROP VIEW --从数据库中删除视图CREATE INDEX --为数据库表创建一个索引DROP INDEX --从数据库中删除索引CR

图文教程mssqlserver数据库导出到另外一个数据库的方法_MsSql

下文通过图文并茂的方式给大家介绍mssqlserver数据库导出到另外一个数据库的方法,具体详情请看下文. 1.准备源数据库,找到想要导出的数据库,右键选择"任务"再选择"导出数据" 2.设置源数据库信息   3.设置目标数据库,导出到的数据库信息  4.设置要复制的数据 这里有两大类,一是直接复制某些表,二是根据sql查询出的指定数据 复制某些表的话选择第一项,之后选择要复制的表,选择之后点击"完成"按钮即可开始复制数据从源数据库到目标数据库

复制SqlServer数据库

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

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

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