从高山网(http://www.gao3.cn)上看到的一篇文章,收录于此.
在目前的工作中需要解决复制整个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);
本文来自CSDN博客,转载请标明出处:http://www.gao3.cn/asp/article/article34.htm
分享到:
相关推荐
在目前的工作中需要解决复制整个SqlServer数据库的问题,复制的内容包括数据库大纲、数据库中的存储过程、函数、表结构、主外键关系以及表中的所有数据等,也就是说copy版本与原数据库一模一样。经过一段时间的摸索...
SQL Server 数据库服务器负载均衡集群的实现 SQL Server 数据库服务器是应用范围最广的数据库产品,并且越来越多地在大型和关键的应用系统中提供服务。当企业应用越来越复杂、数据量越来越大的时候,SQL Server ...
数据库镜像和复制是 SQL Server 的高可用性功能,可以确保数据库的可用性和稳定性。在升级过程中,需要监控数据库镜像和复制,以确保数据的传输和可靠性。 知识点4: 最小停机时间 最小停机时间是指升级过程中系统不...
据库镜像是将数据库事务处理从一个SQL Server数据库移动到不同SQL Server环境中的另一个SQL Server数据库中。镜像的拷贝是一个备用的拷贝,不能直接访问;它只用在错误恢复的情况下。因为是在SQL Server 2005中新引入...
SqlServer 数据库表格的复制(数据和表结构同时复制) 在本篇文章中,我们将详细介绍如何使用 SqlServer 数据库管理系统中的导出数据功能来实现数据库表格的复制,包括数据和表结构的同时复制。这种方法可以帮助...
(4) 如何在SQLServer中创建临时表(如何在SQLServer中将数据复制到创建的临时表) (5)如何实现行转列 (6)查询出某个字段所有重复的记录 (7) 写一条sql语句,要修改一个字段的俩个值,比如把字段sex中的男改为...
为初学者介绍sqlserver基本原理的好书。是入门关系数据库技术的不二选择。深入浅出的介绍了安装和配置、数据库的设计和管理、SQL 语言基础、创建索引、设计数据完整性、存储过程、触发器、安全性、数据库的备份和...
复制)、SQL开发(数据库设计、SQL Server与CLR集成、在SQL Server中使用 XML、使用ADO.NET、使用SMO编程管理数据库对象、高级T-SQL、Service Broker 异步应用程序平台、空间数据类型跨实例链接、数据库管理自动...
SQL Server数据库复制分发订阅定制步骤详解 SQL Server数据库复制分发订阅定制是指将数据库中的数据从一个服务器复制到另一个服务器,以便实现数据的实时同步和备份。本文将详细介绍 SQL Server数据库复制分发订阅...
使用 SQL Server 将表从一个数据库复制到另一个数据库 SQL Server 是一种关系数据库管理系统,它提供了多种方式来将表从一个数据库复制到另一个数据库。下面将详细介绍使用 SQL Server 将表从一个数据库复制到另一...
该数据搜索工具可以在SQL Server数据库中搜索字符串、数字和日期类型的数据,并返回相应的列和列的类型,而且可以在运行中随时取消,在运行完成后可以将结果复制到剪贴板或导出为Excel 2007格式文件。
1.批量对多个sql server数据库执行查询或者更新操作。 2.支持将记录集导入为txt、xml以及wps excel或者office excel文件中,对超过65536行的查询结果集自动拆分工作表。 3.支持查询结果在水晶报表工具简单展示。 4....
Z.SqlBulkCopy.Extension第三方批量复制插入sqlServer数据库的方法-chm帮助文档 Z项目是MIT麻省理工大学的一个项目,其中有很多扩展库,其中一个关于批量导入数据到Sqlserver的方法和程序集,非常不错,很实用。 Z....
Z.SqlBulkCopy.Extension第三方批量复制插入sqlServer数据库的方法-chm帮助文档 Z项目是MIT麻省理工大学的一个项目,其中有很多扩展库,其中一个关于批量导入数据到Sqlserver的方法和程序集,非常不错,很实用。 Z....
查看本地数据库服务器中的数据库 表 表中字段 双击可复制
在使用SqlServer的过程中,我们可能需要将表从一个数据库复制到另一个数据库中.
Microsoft SQL Server 2012 数据库复制
本文档详细介绍了sql server怎样从一个数据库复制表到另一个数据库的方法。有图为例,简单易懂。
Z.SqlBulkCopy.Extension第三方批量复制插入sqlServer数据库的方法-chm帮助文档 Z项目是MIT麻省理工大学的一个项目,其中有很多扩展库,其中一个关于批量导入数据到Sqlserver的方法和程序集,非常不错,很实用。 Z....