SQL備份表資料

2021-10-04 23:51:46 字數 2465 閱讀 3691

1:情況說明

對某個表,需要進行某些刪除或修改操作測試,但也需要資料還原,所以需要備份表中資料。

2:思路分析

一般操作,將表a所有的資料,備份到新建表b中(若有其他更屌的操作,請告訴我,萬分感謝)。

3:具體sql實現(庫型別說明:sql server2008)

3.1:備份表資料

--使用哪個庫說明

use cfasset

begin

--assetborrowout:備份表

--assetborrowout_20180814:記錄表,用於資料還原

--assetborrowout_20180814,表名是隨意的,並不需要先建立該錶,備份中,會自行根據原**式建立

select * into assetborrowout_20180814 from assetborrowout

end

3.2:業務操作,對錶資料進行了不可恢復的操作,這裡只用更新修改作為例子

use cfasset

begin

--用於遍歷讀取游標中的deptid欄位

declare @deptid int

--游標定義

declare cur_ercode cursor for

select deptid from dbo.assetborrowout

--開啟游標

open cur_ercode

fetch next from cur_ercode into @deptid

while

(@@fetch_status=0)

--固定寫法

begin

--具體業務,具體實現

--deptid切換

update assetborrowout

set status =

'ok'

where deptid = @deptid

fetch next from cur_ercode into @deptid --跳轉到下一行,不然會死迴圈,類似指標

end--關閉游標

close cur_ercode

--釋放游標

deallocate cur_ercode

end

3.3:恢復資料,先刪除備份表,然後將記錄表,寫回備份表中

刪除資料

delete

from assetborrowout

--將記錄表assetborrowout_20180814資料插入到原來的備份表assetborrowout中

--將自增主鍵關閉,

setidentity_insert assetborrowout on

insert into assetborrowout

(borrowoutid,assetid,deptid,handler,borrowdeptid,

borrowdept,borrower,begindate,enddate,memo,returndate,returner,

receiver,returnmemo,operator,operatorname,operatetime,returnoperator,

returnoperatorname,returnoperatetime,borrowername,borrowerchecktime,ercode,status)

select

borrowoutid,assetid,deptid,handler,borrowdeptid,

borrowdept,borrower,begindate,enddate,memo,returndate,returner,

receiver,returnmemo,operator,operatorname,operatetime,returnoperator,

returnoperatorname,returnoperatetime,borrowername,borrowerchecktime,ercode,status from assetborrowout_20180814

setidentity_insert assetborrowout off

注釋:還有一種方法,是模仿3.1備份資料表做法,要加以驗證,也不太確定是否有沒問題。

將原來需要備份的表,刪除,再重新通過備份記錄表是形式,重新建立原表,並新增資料。

**演示:

begin

drop table assetborrowout

select * into assetborrowout from assetborrowout_20180814

end

SQL資料表備份 原創

如果是一般的羽量級的幾條使用者資訊,我可能做個excel,甚至是記事本,用這樣的土辦法,也可以實現備份的目的,辦法雖土,但是至少也是種非常傳統老式的,類似手寫的備忘方式。然而,新聞資料呢?新聞的正文通常是包含html的大段大段的 這類東西要是丟失了,那可是哭也來不及的。修復?即便是重新發布,編輯,那...

mysql sql 備份表 SQL語句之備份表

select into 語句 表示從乙個表中選取資料,然後把資料插入另乙個表中,常用來備份一張表 1.全表結構備份 select into new table name from old tablename 示例 備份student表,備份表取名為student backup select into...

SQL資料備份

1.在作業裡面排程,指定一段時間備份一次 保留原來備份的 declare snvarchar 1000 set s n f backup testdb convert nvarchar 8 getdate 112 n bak backup database testdb todisk s 2.在作業...