**:
sql server 2008如何copy database:
方法一:使用microsoft sql server management studio中的copy database wizard來輔助完成。(很容易失敗)
方法二:採取backup/restore的方式(推薦)
a.備份資料庫到磁碟
[sql]view plain
copy
backup database source_database
to disk = 'd:\backup\source_database.bak'
with format;
b.檢視備份檔案的邏輯檔案
[sql]view plain
copy
restore filelistonly
from disk = 'd:\backup\source_database.bak';
c.建立目標資料庫
[sql]view plain
copy
create
database target_database;
d.從磁碟複製資料庫
[sql]view plain
copy
/*
利用bak恢復資料庫,強制還原(replace)
stats = 10 每完成10%顯示一條記錄
source_database和source_database_log是上面d:\backup\source_database.bak裡的邏輯檔案
*/
restore database target_database
from disk='d:\backup\source_database.bak'
with
move
'source_database'
to'c:\program files\microsoft sql server\mssql10_50.mssqlserver\mssql\data\target_database.mdf',
move
'source_database_log'
to'c:\program files\microsoft sql server\mssql10_50.mssqlserver\mssql\data\target_database_log.ldf',
stats = 10,replace
附:例項:
use [database_name]
go/****** object: storedprocedure [dbo].[copydatabase] ******/
set ansi_nulls off
goset quoted_identifier off
go/****** 物件: 儲存過程 dbo.copydatabase ******/
/****** 物件: 儲存過程 dbo.copydatabase ******/
create procedure [dbo].[copydatabase]
(@sourcedbname varchar(50),
@newdbname varchar(50))
asdeclare @tempdevice varchar(50)
declare @tempbkupfile varchar(50)
declare @tempbkpath varchar(200)
declare @datafilepath varchar(200)
declare @logfilepath varchar(200)
declare @sdatafile varchar(100)
declare @slogfile varchar(100)
set @sdatafile=@sourcedbname+"_data" /*檢視備份檔案的邏輯檔案restore filelistonly from disk =tempbkpath+tempbkupfile'; 特別重要,此處就按檢視結果設定,下面slogfile相同的道理*/
set @slogfile=@sourcedbname+"_log"
set @datafilepath="d:\program files\microsoft sql server\mssql10_50.mssqlserver\mssql\data\"+@newdbname+".mdf"
set @logfilepath="d:\program files\microsoft sql server\mssql10_50.mssqlserver\mssql\data\"+@newdbname+".ldf"
set @tempbkupfile=@newdbname+".dat"
set @tempbkpath="d:\program files\microsoft sql server\mssql10_50.mssqlserver\mssql\backup\"+@tempbkupfile
set @tempdevice=@newdbname+"back"
exec sp_addumpdevice "disk", @tempdevice,@tempbkpath
backup database @sourcedbname to @tempdevice
restore database @newdbname from @tempdevice with recovery,
move @sdatafile to @datafilepath,
move @slogfile to @logfilepath
exec sp_dropdevice @tempdevice,"delfile"
go
採取行動,解決問題
陶行知很久以前就說過 知易行難 就是說我們很容易獲取知識,但是要真正執行起來卻是很難的事情。我們很多人,都知道自己有問題。例如喜歡看電視,衣服隨便亂扔,但是要改變這些習慣是非常困難的。為什麼我們沒有辦法解決這些問題呢,就是因為我們知道問題,但是我們沒有採取行動。這一思想貫徹到日常工作中,我們每次會議...
看見問題,必須採取行動
看見問題,必須採取行動 我已經觀察並檢查了專案組的 出人意料,我以為不能勝任工作的同事居然 寫的有板有眼,注釋也清清楚楚,雖然工作量並沒有完成.真讓我喜出望外,是不是我上次批評的過分了?幸好我沒有立即表態,將我檢查的情況和專案負責人一一核對,這才發現我們那位同事的 原來是專案負責人寫的,因為他寫不出...
採取策略加強資料恢復計畫
採取策略加強資料恢復計畫 制定資料恢復策略的關鍵就是要主動出擊。誰會喜歡在計算機遭受破壞之後而手忙腳亂的尋找並恢復資料呢,建立系統來保護您的公司免受資料丟失才是王道。令人驚訝的是,儘管面臨丟失資料或不信任資料完整性的巨大風險,依然有許多公司認為,它們無法負擔得起全面的災難恢復計畫所耗費的成本。但其實...