--不影响日后工作的造数据步骤:
--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