Home Database Mysql Tutorial 复制SqlServer数据库

复制SqlServer数据库

Jun 07, 2016 pm 03:27 PM
sqlserver copy database at present solve need

在目前的工作中需要解决复制整个SqlServer数据库的问题,复制的内容包括数据库大纲、数据库中的存储过程、函数、表结构、主外键关系以及表中的所有数据等,也就是说copy版本与原数据库一模一样。经过一段时间的摸索,找到的一个比较简单的解决方案是: (1)

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


   测试的代码如下:

                IListSPParameter> paraList = new ListSPParameter>();
                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
stringobject> outParas = null;
                Program.DataAccesser.GetSPAccesser(
null).ExcuteNoneQuery("CopyDB", paraList, out outParas);


Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to import mdf file into sqlserver How to import mdf file into sqlserver Apr 08, 2024 am 11:41 AM

How to import mdf file into sqlserver

How to recover accidentally deleted database in sqlserver How to recover accidentally deleted database in sqlserver Apr 05, 2024 pm 10:39 PM

How to recover accidentally deleted database in sqlserver

How to delete sqlserver if the installation fails? How to delete sqlserver if the installation fails? Apr 05, 2024 pm 11:27 PM

How to delete sqlserver if the installation fails?

What is the difference between mysql and sqlserver syntax What is the difference between mysql and sqlserver syntax Apr 22, 2024 pm 06:33 PM

What is the difference between mysql and sqlserver syntax

How to recover data deleted from sqlserver How to recover data deleted from sqlserver Apr 05, 2024 pm 10:45 PM

How to recover data deleted from sqlserver

How to delete database in sqlserver How to delete database in sqlserver Apr 05, 2024 pm 11:00 PM

How to delete database in sqlserver

Where is the navicat database file? Where is the navicat database file? Apr 23, 2024 am 10:57 AM

Where is the navicat database file?

What should I do if sqlserver cannot be deleted and cannot be reinstalled? What should I do if sqlserver cannot be deleted and cannot be reinstalled? Apr 05, 2024 pm 11:30 PM

What should I do if sqlserver cannot be deleted and cannot be reinstalled?

See all articles