作者TeemingVoid (TeemingVoid)
看板Database
標題Re: [SQL ] 僅針對一個表單備份
時間Sat Sep 1 15:55:08 2012
※ 引述《zxc321 (堅持到底 )》之銘言:
: 是否有辦法可以僅對A主機資料庫(DB2012)某一個表單(dbo.cashinflow)進行備份
: 在B主機中資料庫(DB2012)該表單(dbo.cashinflow)進行還原
Table-level 的備份/還原,常用的有兩種作法:
甲案,利用 SSMS 的「產生指令碼」精靈:
1. 啟動 SQL Server Management Studio (以 2008 R2 舉例)
2. 展開到您的資料庫,滑鼠右鍵點按資料庫名稱 | 工作 | 產生指令碼...
3. 精靈畫面...
3.1 <下一步>
3.2 勾選「選取特定的資料庫物件」,並且選擇你要備份的資料表 <下一步>
3.3 點按「進階」按鈕
要編寫的資料類型: 資料描述和資料。<確定>
<Note>這是重點,否則只會產生 create table 指令而沒有資料。
3.4 輸入檔案的路徑檔名,例如: C:\temp\YourTable.sql
4.5 <下一步>... <完成>
用記事本檢視(例如) C:\temp\YourTable.sql,會發現檔案內容大致就是 create
table 指令與一大堆的 Insert 指令(類似 MySQL 的 MySqlDump 產生出來的備
份檔)。所以,到另一部 SQL Server 上頭就只是執行一遍檔案內容的那些指令
即可還原資料表。
乙案,利用 bcp 工具程式匯入匯出資料,例如:
匯出:
bcp "select * from db2012.dbo.cashinflow" queryout c:\temp\cashflow.bcp
-S(local)\SQLExpress -T -N
匯入:
bcp test.dbo.cashinflow in c:\temp\cashflow.bcp -S(local)\SQLExpress -T -N
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.170.128.119
推 zxc321:謝謝你的回答 不過請問第一個方法 因為我的是 SQL 2005 09/01 17:33
推 zxc321:找不到進階 那2005的指令碼要選那個才可以備份含資料內容 09/01 17:39
推 zxc321:另外若是採用匯入資料 及 匯出資料 方式進行可以嗎? 09/01 17:57
→ TeemingVoid:用 Management Studio 2008 連 SQL Server 2005 啊 :) 09/01 18:55
→ TeemingVoid:無論甲案乙案,都會有第二次備份時,資料重複如何處 09/01 18:55
→ TeemingVoid:理的問題,最簡單的方式就是「清掉-重新載入」。 09/01 18:56
推 Adonisy:連同INSERT指令是2008之後的功能 09/01 19:28
→ TeemingVoid:樓上+1 直接用 bcp 做吧,還是老牌的工具可靠 ^^ 09/01 21:29
→ TeemingVoid:-- 09/01 21:38
→ TeemingVoid:下載Management Studio 2008 Express,然後,用它連 09/01 21:39
→ TeemingVoid:SQL 2005,接下來的程序與上述回文大致相同,但是, 09/01 21:39
→ TeemingVoid:「編寫資料的指令」(最後一項),請選"True",以便於 09/01 21:40
→ TeemingVoid:產生 Insert 指令。 09/01 21:40