在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
复制代码

 

posted on   jack_Meng  阅读(7827)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2017-03-04 C#自动弹出窗口并定时自动关闭
2016-03-04 nodejs的express使用介绍
2016-03-04 nodejs小问题:express不是内部或外部命令
2016-03-04 Nodejs初阶之express
2016-03-04 windows 下安装nodejs及其配置环境
2016-03-04 NodeJS、NPM安装配置与测试步骤(windows版本)
2016-03-04 nodejs npm常用命令

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏

主题色彩