sql server中備份資料的幾種方式

2021-09-06 22:38:08 字數 1221 閱讀 9390

當我們在寫sql指令碼要對資料表中的資料進行修改的時候,為了防止破壞資料,通常在開發前都會對資料表的資料進行備份,當我們sql指令碼開發並測試完成後,再把資料恢復回來。

目前備份資料,我常用的方法有以下幾種。

臨時表匯出指令碼

複製資料到新錶

使用臨時表雖然簡單方便,但是它很不安全,如果資料庫重啟資料就丟失了,所以一般不建議用。使用臨時表的**。

use

tsqlfundamentals2008;

go--

區域性臨時表

ifobject_id('

tempdb.dbo.#myordertotalsbyyear

','u

') is

notnull

drop

table

dbo.#myordertotalsbyyear;

go--

建立區域性臨時表

select

year(orders.orderdate) as orderyear,sum(orderdetails.qty) as

qty

into

dbo.#myordertotalsbyyear

from sales.orders as

orders

left

join sales.orderdetails as orderdetails on orders.orderid =

orderdetails.orderid

group

byyear(orders.orderdate);

view code

當資料量小的時候,我們可以使用sql server自帶的匯出指令碼功能將資料匯出成sql指令碼,但是當資料量大的時候(比如前段時間我匯出乙個表,50多萬條記錄,生成的指令碼有1個多gb),生成的指令碼體積很大,無法在ssms中開啟執行。雖然可以使用osql執行,不過速度很慢。

備份使用select * into [目標表] from [源表],恢復的時候insert into [源表] select * from [目標表],不過要注意主鍵是否自增,如果是自增的話,恢復的時候最好在insert into之前加上set identity_insert [表名] on語句。

所以總結起來,複製資料到新錶的方式比較方便和可靠。

SQL SERVER定時備份資料庫

sql server定時備份資料庫 點選 管理 sql server 作業 新建作業 常規選項卡裡,名稱 填寫 定時備份資料庫 啟用 前面選 對勾 以本地伺服器為目標 分類 選擇 資料庫維護 步驟選項卡裡,新建步驟,步驟名 備份資料庫 型別 transact sql指令碼 tsql 資料庫 要備份的...

使用SQL SERVER備份命令備份資料庫

sql server資料庫備份命令 完整備份 包括資料data和日誌log backup database database name to disk x folder databse name backupname.bak 注 前提是x folder存在 成功 差異備份 包含資料data和日誌lo...

使用SQL SERVER備份命令備份資料庫

sql server資料庫備份命令 完整備份 包括資料data和日誌log backup database database name to disk x folder databse name backupname.bak 注 前提是x folder存在 成功 差異備份 包含資料data和日誌lo...