sql复制表结构和数据

来源:互联网 发布:ip与mac绑定 编辑:程序博客网 时间:2024/05/16 15:10
 

案例一:

在informix中需要吸纳建立一个相同字段的新表然后insert into newtable select × from oldtable
 


全部复制select * into NewTable from OldTable

复制结构select * into NewTable from OldTable where 1=2

复制数据insert into NewTable (y1,y2,y3) select y1,y2,y3 from OldTable

 如果不是同一地点的表要复制表结构,sql有自带的导出功能。

 可以保证本地数据库中视图、存储过程、以及表的默认值、标识、主键等属性的完整性,避免由于DTS传输引起丢失属性的问题,同时使用查询分析器执行SQL脚本,在服务器端创建表结构;
1. 运行本地的企业管理器(ms sql server 2005 management studio express)
2. 点击本地的数据库->点击右健->任务->选择生成SQL脚本。
3. 选择常规->把为服务器版本编写脚本设置为sql server 2000,然后下一步选择您想导出的表。
4. 脚本生成完毕,保存为*.sql文件。
5. 用sql查询分析器,登陆到空间的sql server 2000服务器,找到自己的数据库,打开查询(一般打开数据库后会默认打开一个查询)
6. 用记事本把生成的sql文件打开,把内容复制到查询,执行sql语句
7. 数据库表建立完毕。此时没有数据。
注:生成sql脚本时可能会遇到生成失败的问题,只要右键点击数据库名->属性->选项->兼容级别选择为sql server 2000(80),然后再生成sql文件,就不会报错了。


案例二:


sql复制表结构和数据2010-03-02 14:38功能:将查询的结果放到一个新表中去,查询结果可以来源于一个表或多个表SQL SERVER中使用SELECT…INTO语句按照使用场合可以分为以下几类:1.实现全表备份:如:SELECT*INOT t1 FROM titles 2.备份表的一部分列(不写*而写出列的列表)或一部分行(加WHERE条件)如:SELECT title_id,title,price INTO t2 FROM titles-部分列SELECT*INTO t2 FROM titles WHREE price 10–部分行SELECT title_id,title,price INTO t2 FROM titles WHREE price 10–部分行和部分列3.只复制表的结构:如:SELECT*INOT t1 FROM titles WHERE 1=2 4.查询结果来源于多个表:如:SELECT title_id,title,pub_name INTO t3 FROM titles tINNER JOIN publishers pON t.pub_id=p.pub_id数据复制第一次是导出的时候当时为了导出一些数据然后在其他的系统中导入,表的结构是一样的,所以我就新建了一个数据库,然后:select*into[DB_A].table_A from[DB_B].table_B这句话的意思就是从DB_B这个数据库中的table_B导出数据,到数据库DB_A中的table_A,这句话的好处就是它会在DB_A中创建一个table_A名称的表而且会按照table_B的表结构创建字段,然后再把table_B中的全部数据插入到table_A中,这样就省去了我创建table_A和他的字段的过程.第二次是导入的时候需要把还原的数据库中的数据导入到我们的项目库中,这次由于项目库中的表都是存在的所以只能用:insert into[DB_B].table_B select*from[DB_A].table_A这样只会把数据导入到项目库中第三次是把一个表拆成多个表,但是里面的数据也要插入到相应的表中这次比较麻烦了,当时由于表的结构都不一样了,开始是用的一个本方法,就是把源表直接用第一种方法复制成一个表,然后再把里面的字段修改或删除,勉强完成了.但是过后尝试发现insert into可以加字段就变成了:insert into table_A(id)select id from table_B这样就直接把table_B中的id列复制到了table_A的id这列中,非常方便.


本文来自: 高校自动化网(Www.zdh1909.com) 详细出处参考(转载请保留本链接):http://www.zdh1909.com/html/sql/11719.html