複製SqlServer資料庫

2021-09-05 16:04:22 字數 2620 閱讀 6966

在目前的工作中需要解決複製整個sqlserver資料庫的問題,複製的內容包括資料庫大綱、資料庫中的儲存過程、函式、表結構、主外來鍵關係以及表中的所有資料等,也就是說copy版本與原資料庫一模一樣。經過一段時間的摸索,找到的乙個比較簡單的解決方案是:

(1)在複製資料庫之前,先備份該資料庫到檔案。

(2)依據備份檔案建立新的資料庫,並restore即可。

備份資料庫可用如下sql語句:

string

.format(

"backup database  to disk = '';

", 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, 

outoutparas);

複製SqlServer資料庫

在目前的工作中需要解決複製整個sqlserver資料庫的問題,複製的內容包括資料庫大綱 資料庫中的儲存過程 函式 表結構 主外來鍵關係以及表中的所有資料等,也就是說copy版本與原資料庫一模一樣。經過一段時間的摸索,找到的乙個比較簡單的解決方案是 1 在複製資料庫之前,先備份該資料庫到檔案。2 依據...

SQL Server之資料庫複製

sql server中備份,除了映象方式外還有複製方式。sqlserver 2012中還引進了alwayson,並且官方建議不再使用映象 資料庫複製 概述 複製是一組技術,它將資料和資料庫物件從乙個資料庫複製和分發到另乙個資料庫,然後在資料庫之間進行同步以保持一致性。使用複製,可以在區域網和廣域網 ...

SQL Server 複製資料庫任務

假設你要生產環境下的資料做相應的測試,比如修改及測試儲存過程 更改和優化索引等。但是你使用者在連線資料庫的情況下,你又不能斷開資料庫的連線。如何取得資料庫的副本呢?一.利用資料庫任務中的複製資料庫選單 示例是從預設例項 mssqlserver 向命名例項 mysqlserver 複製northwin...