SQLServer中用sql语句复制表中的所有行插入到表的后面(主键自增)
例如
表:student(id,name,sex.age),id主键自增
把表中纪录复制再插入到这个表后面
insert into student select name,sex,age from student;
原则,除自增列外的所有列都要写出,注意查询字段的顺序和表对应,要不如下:
insert into student(sex,name,age) select sex,name,age from student;
查询字段和插入字段对应
另,删除重复的行的语句:
delete from student where id in (select a.id id from student a,student b where a.name=b.name and a.sex = b.sex and a.age=b.age and a.id<>b.id)
其中查询语句为查出所有重复纪录的id
select a.id id from student a,student b where a.name=b.name and a.sex = b.sex and a.age=b.age and a.id<>b.id
原则除主建外所有字段都要相等
and a.id<>b.id ,这个不加就会把正个表的数据算重复
因为a和b都是student表,自己和自己比当然什么都一样,
and a.id<>b.id 就是和自己外的其他纪录比。
测试运行环境:
SQLServer2000和SQLServer2005。