在SQL Server中使用SQL語句備份單表-造數據-還原表


之前在網上看到使用sql語句進行單表的備份和還原的,但是好像是針對Oracle數據庫的。我們現在項目上使用的是SQL Server數據庫。就想能否也可以使用這種方式。

參考:在Oracle中使用SQL語句備份單表-造數據-還原表  

按照網上的SQL語句,修改可以用於SQL Server數據庫,需要的可以測試下:

 

--不影響日后工作的造數據步驟:
--1、備份表內的內容,
--2、清表內內容,
--3、給表造數據,
--4、還原表
--5、檢查還原后的兩表數據是否相同
------------------------------------------------------------
--1、備份表內的內容,
--select * into tb_bak from tb Where [條件1,條件2];
--tb 原數據表
--tb_bak 要備份的新表名
--若只需要表頭不需要表數據的話,加上條件 select * into tb_bak from tb where 1=0;
--若要向已經存在的表中備份數據庫,使用 insert into 目標表名 select * from 源表名; 

select * into dbo.t_scs_0304 from dbo.t_scs;
------------------------------------------------------------
--2、清表內內容,
--delete <表名>; 
--刪掉一整個表內的數據
--若只刪除部分表數據的話,加上條件 delete <表名> where 字段1=字段值;
delete dbo.t_scs;

------------------------------------------------------------
--3、給表造數據,
declare 
 @num int,
 @inTime datetime
 set @num =1
 set @inTime = SYSDATETIME()
 while(@num<5)
 begin 
   insert t_scs (scs_Name,scs_DateTime) values('王麻子'+ cast(@num as varchar),@inTime)
   set @num = @num+1
   set @inTime = DATEADD(mi,1,@inTime)
 end

------------------------------------------------------------ 
--4、還原表
--清空現有表中的數據
delete dbo.t_scs 

--把備份表中的數據復制到原表去
--方法一:使用 insert into 目標表  select * from 源表對數據恢復
--若目標表有使用自增id作為主鍵的,需要設置 set IDENTITY_INSERT  dbo.t_scs on 和 set IDENTITY_INSERT  dbo.t_scs off
--方法二:根據表的主鍵更新記錄,更新效率高:update table1 set field1=table2.field1,field2=table2.field2 from table2 where table1.id=table2.id

set IDENTITY_INSERT  dbo.t_scs on
insert into dbo.t_scs (id,scs_Name,scs_DateTime) select * from dbo.t_scs_0304; 
set IDENTITY_INSERT dbo.t_scs off

------------------------------------------------------------ 
--5、檢查數據是否相同
--如果數據量比較少的話,那么你可以直接自己對比兩表,查看數據是否相同;
--也可以使用 intersect和except 語句進行檢查

--查詢出兩表的相同數據
select * from t_scs
intersect
select * from t_scs_0304;

--查詢出兩表不同的數據
select * from t_scs
except
select * from t_scs_0304;

--把備份的表刪掉。
drop table t_scs_0304

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM