SQL Server数据库之间进行数据导入导出

摘要:
在SQLServer数据库之间进行数据导入导出  .使用SELECTINTO导出数据在SQLServer中使用最广泛的就是通过SELECTINTO语句导出数据,SELECTINTO语句同时具备两个功能:根据SELECT后跟的字段以及INTO后面跟的表名建立空表;将SELECT查出的数据插入到这个空表中。SELECT*INTOtable2FROMtable1这条SQL语的在建立table2表后,将table1的数据全部插入到table1中的,还可以将*改为f1或f2以便向适当的字段中插入数据。SELECTINTO不仅可以在同一个数据中建立表,也可以在不同的SQLServer数据库中建立表。

在SQL Server数据库之间进行数据导入导出

  (1).使用SELECT INTO导出数据

在SQL Server中使用最广泛的就是通过SELECT INTO语句导出数据,SELECT INTO语句同时具备两个功能:根据SELECT后跟的字段以及INTO后面跟的表名建立空表(如果SELECT后是*, 空表的结构和FROM所指的表的结构相同);将SELECT查出的数据插入到这个空表中。在使用SELECT INTO语句时,INTO后跟的表必须在数据库不存在,否则出错,下面是一个使用SELECT INTO的例子。
假设有一个表table1,字段为f1(int)、f2(varchar(50))。

SELECT*INTOtable2 FROMtable1

这条SQL语的在建立table2表后,将table1的数据全部插入到table1中的,还可以将*改为f1或f2以便向适当的字段中插入数据。
SELECT INTO不仅可以在同一个数据中建立表,也可以在不同的SQL Server数据库中建立表。

USEdb1
SELECT*INTOdb2.dbo.table2 FROMtable1

以上语句在数据库db2中建立了一个所有者是dbo的表table2,在向db2建表时当前登录的用户必须有在db2建表的权限才能建立 table2。 使用SELECT INTO要注意的一点是SELECT INTO不可以和COMPUTE一起使用,因为COMPUTE返回的是一组记录集,这将会引起二意性(即不知道根据哪个表建立空表)。

  (2).使用INSERT INTO 和 UPDATE插入和更新数据

SELECT INTO只能将数据复制到一个空表中,而INSERT INTO可以将一个表或视图中的数据插入到另外一个表中

INSERTINTOtable1 SELECT*FROMtable2

INSERTINTOdb2.dbo.table1 SELECT*FROMtable2

但以上的INSERT INTO语句可能会产生一个主键冲突错误(如果table1中的某个字段是主键,恰巧table2中的这个字段有的值和table1的这个字段的值相同)。因此,上面的语句可以修改为

INSERTINTOtable1 --假设字段f1为主键SELECT*FROMtable2 WHERENOTEXISTS(SELECTtable1.f1 FROMtable1 WHEREtable1.f1=table2.f1 )

以上语句的功能是将table2中f1在table1中不存在的记录插入到table1中。

要想更新table1可以使用UPDATE语句

UPDATEtable1 SETtable1.f1=table2.f1, table1.f2=table2.f2 FROMtable2
WHEREtable1.f1=table2.f1

将以上两条INSERT INTO和UPDATE语句组合起来在一起运行,就可以实现记录在table1中不存在时插入,存在时更新的功能,但要注意要将UPDATE放在 INSERT INTO前面,否则UPDATE更新的记录数将是table1和table2记录数的总和。

免责声明:文章转载自《SQL Server数据库之间进行数据导入导出》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SAP HANA中创建计算视图(Calculation View)Perforce服务器的备份还原下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用SyncNavigator轻松实现数据库异地同步、断点续传、异构同步

最近一直在研究数据库同步的问题,在网上查了很多资料,也请教了很多人,找到了一种通过快照复制的方法。研究了一番后发现之前就是用的这个方法,效果不是很好,果断放弃。经过了一番寻觅和他人指点,最后从一位热心网友那里得知一款很好用的软件—— SyncNavigator。 好东西就要拿出来跟大家分享,所以今天向大家介绍一下这款软件,及其一些使用方法。下面先看看它有...

ES跨集群数据迁移

跨集群数据迁移 用户在腾讯云上自建的ES集群或者在其它云厂商购买的ES集群,如果要迁移至腾讯云ES,用户可以根据自己的业务需要选择适合自己的迁移方案。如果业务可以停服或者可以暂停写操作,可以参考离线迁移的四种方案。 离线迁移 离线迁移需要先停止老集群的写操作,将数据迁移完毕后在新集群上进行读写操作。适合于业务可以停服的场景。 离线迁移大概有以下几种方式:...

Redis 使用指南:深度解析 info 命令

Redis 是一个使用  ANSI C 编写的开源、基于内存、可选持久性的键值对存储数据库,被广泛应用于大型电商网站、视频网站和游戏应用等场景,能够有效减少数据库磁盘 IO, 提高数据查询效率,减轻管理维护工作量,降低数据库存储成本。对传统磁盘数据库是一个重  要的补充,成为了互联网应用,尤其是支持高并发访问的互联网应用必不可少的基础服务之一。它的主要优势...

在SqlServer中通过SQL语句实现树状查询

1 CREATE PROCEDURE [dbo].[GetTree] 2 @Id int 3 AS 4 BEGIN 5 with cte as 6 ( 7 select Id,Pid,Name,0 as lvl fromEntity 8 where Id = @Id 9 union all 10...

MUI 学习---页面跳转;页面传参;接口数据请求;页面数据绑定;构建点击事件;回调刷新;数据列表支持从右向左滑动触发删除;拨打电话

1、页面跳转、页面传参、构建点击事件 /*给ul 下面的li 添加点击事件*/ mui('ul').on("tap", "li", function() { //获取html页面中data-item中的item对象 var obj = this.dataset.item;...

在Ubuntu14.04中配置mysql远程连接教程

上一篇文章,小编带大家学会了在Ubuntu14.04中安装MySQL,没有来得及上课的小伙伴们可以戳这篇文章:如何在Ubuntu14.04中安装mysql,今天给大家分享一下,如何简单的配置MySQL,可以实现远程连接,具体的教程如下。 1、mysql的配置文件在/etc/mysql/my.cnf中,如下图所示。配置文件中的内容很丰富,我们可以看到mysq...