sql复制表定义及复制数据行

来源:互联网 发布:linux关闭nagle算法 编辑:程序博客网 时间:2024/06/13 09:08
一、复制表定义


假设我们有一个数据表OnlineRecord,有Id,OnlineRecordTicketNo,SiemensEmployeeID,SiemensEmployeeName,OnlineRecordStatus5个列,表结构可以参考这一篇。现在我们想创建一个新表叫OnlineRecordtest,表结构和OnlineRecord一模一样,也就是列名和数据类型都一致。我们可以通过复制OnlineRecord表的结构而不是复制表中的记录来创建这个表,贴一下sql代码:
数据库是Sql Server
sql server使用带有不返回任何行的查询和INTO子句:
SELECT   OnlineRecordTicketNo,SiemensEmployeeID,SiemensEmployeeName,OnlineRecordStatus    INTO PeopleFROM    OnlineRecord    WHERE 1=0;

当使用INTO命令来复制表时,查询所返回的行都会加入新生成的表OnlineRecord中,除非我们在WHERE子句条件中定义一个恒为false的条件,即1=0。

还要注意,OnlineRecord表的Id是自增的主键,但是复制后新建的OnlineRecordtest表的Id没有变成主键。


二、从一个表向另外的表复制行


还是以OnlineRecord和OnlineRecordtest表来举例,假如OnlineRecord和OnlineRecordtest表都已经存在,把OnlineRecord表中几个字段复制到OnlineRecordtest表中:

表结构完全相同

insert into OnlineRecordtest(OnlineRecordTicketNo,SiemensEmployeeID,SiemensEmployeeName,OnlineRecordStatus)select OnlineRecordTicketNo,SiemensEmployeeID,SiemensEmployeeName,OnlineRecordStatusfrom OnlineRecord where OnlineRecordTicketNo='5782318298';


INSERT INTO语句指定要插入的列,SELECT列的顺序和插入处写的列顺序要一致,如果没有指定则插入所有列。

参考:http://www.cnblogs.com/jeffwongishandsome/archive/2010/11/14/1877175.html

原创粉丝点击