分享

在SQL Server中使用SQL语句备份单表

 长江黄鹤 2022-10-18 发布于湖北
--不影响日后工作的造数据步骤: --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 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多