sql复制表结构和数据的实现方法


本文整理自网络,侵删。

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 * INTO tablename_new FROM tablename_old

如:SELECT * INOT t1 FROM titles WHERE 1=2

4. 查询结果来源于多个表:如:

SELECT title_id,title,pub_name INTO t3 
FROM titles t INNER JOIN publishers p 
ON t.pub_id=p.pub_id 

5.select * into 要复制到的数据库名.DBO.表名 from 原数据库名.DBO.表名

从news表复制指定字段到news1

set IDENTITY_INSERT [dbo].[news1] ON
INSERT INTO [dbo].[news1] ([id],[title],[stitle],[type_id],[scontent],[keyword],[tag],[author]) SELECT [id],[title],[stitle],[type_id],[scontent],[keyword],[tag],[author] 

FROM [dbo].[news]
set IDENTITY_INSERT [dbo].[news1] OFF

2.从news表复制id,content字段到content_1(id指定区间)

create table content_1([id] [int] primary key NOT NULL, [content] [text] NULL)
INSERT INTO [dbo].[content_1] ([id],[content] ) SELECT [id],[content] FROM [dbo].[news] where [id] between 1 and 100000
create table content_2([id] [int] primary key NOT NULL, [content] [text] NULL)
INSERT INTO [dbo].[content_2] ([id],[content] ) SELECT [id],[content] FROM [dbo].[news] where [id] between 100001 and 200000
create table content_3([id] [int] primary key NOT NULL, [content] [text] NULL)
INSERT INTO [dbo].[content_3] ([id],[content] ) SELECT [id],[content] FROM [dbo].[news] where [id] > 200000

数据库 复制表

数据库把一张表完整无缺的复制到另外一张表中

阅读剩余部分

相关阅读 >>

sql server filestream详解

mysql基础入门 轻松学习mysql命令

navicat实用功能:数据备份与结构同步

oracle基本查询用法入门示例

oracle数据库定时任务dbms_job的用法详解

oracle中 关于数据库存储过程和存储函数的使用

sqlserver使用t-sql进阶之公用表表达式(cte)

sqlserver另类非递归的无限级分类(存储过程版)

sql的九个常用语句是什么

sparksql使用快速入门

更多相关阅读请进入《sql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...