SQL Server使用一个语句块批量插入多条记录的三种方法_mssql2008

我们在日常操作中,免不了对数据库的某张表,一次性的要插入多条记录,但是首先想到的就是复制,粘帖N多重复的INSERT INTO 语句,万一某一个少了一个分号,或多个逗号之类的,产生错误,要找起来可就费尽了,既浪费时间,又耽误工作。

除了上面所说的方法外,其实还有二中方法,相比较起来要比之前那个要简洁。

首先是之前那个方法:   

复制代码 代码如下:

INSERT INTO MyTable(ID,NAME) VALUES(1,'123');
INSERT INTO MyTable(ID,NAME) VALUES(2,'456');
INSERT INTO MyTable(ID,NAME) VALUES(3,'789');

第二种方法,使用UNION ALL来进行插入操作:  

复制代码 代码如下:

INSERT INTO MyTable(ID,NAME)
SELECT 4,'000'
UNION ALL
SELECT 5,'001'
UNION ALL
SELECT 6,'002'

是不是要比第一种方法简单点,据说要比第一种要快!

第三种方法就有点特别了,是SQL Server2008特有的,所以,如果你不是SQL Server2008,就不能使用这种方法了,所以赶快升级吧!体验一下SQL Server2008给我们带了的好处。 

复制代码 代码如下:

INSERT INTO MyTable(ID,NAME)
VALUES(7,'003'),(8,'004'),(9,'005')

上面演示了3种不同的方法来向数据库一次插入多条数据,第三种方法看起来比较简洁高效,推荐大家都赶快升级到SQL Server2008吧。

时间: 2024-12-20 18:36:14

SQL Server使用一个语句块批量插入多条记录的三种方法_mssql2008的相关文章

sql server 2000 一个表的数据插入到三个相关联表中,一条一条的插入

FROM http://www.cnblogs.com/geovindu/archive/2009/07/03/1516159.html 1/**//********************************************************** 2测试数据 sql server 2000 一个表的数据插入到三个相关联表中,一条一条的插入 3---涂聚文 缔友计算机信息技术有限公司 软件工程师 geovindu@163.com www.dupcit.com 4---捷为工作室

SQL Server2005杂谈(2):按列连接字符串的三种方法

本文为原创,如需转载,请注明作者和出处,谢谢! 最近做一个项目,遇到一个在分组的情况下,将某一列的字段值(varchar类型)连接起来的问题,类似于sum函数对int型字段值求和. 如有一个表t_table,结构和数据如图1                                           图1     其中要按着xh字段分组,并且将每一组name字段值连接起来.最终结果希望如图2所示              图2 表中的th字段值对于每一个xh值是唯一的,也是有限的,也就是

SQL Server 2008 阻止保存要求重新创建表的更改问题的设置方法_mssql2008

SQL Server 2008"阻止保存要求重新创建表的更改"的错误的解决方案是本文我们主要要介绍的内容,情况是这样的:我们在用SQL Server 2008 建完表后,插入或修改任意列时,提示:当用户在在SQL Server 2008企业管理器中更改表结构时,必须要先删除原来的表,然后重新创建新表,才能完成表的更改. 如果强行更改会出现以下提示:不允许保存更改.您所做的更改要求删除并重新创建以下表.您对无法重新创建的标进行了更改或者启用了"阻止保存要求重新创建表的更改&qu

HTML 文档插入CSS样式表的三种方法

何插入样式表 当读到一个样式表时,浏览器会根据它来格式化 HTML 文档.插入样式表的方法有三种: 外部样式表 当样式需要应用于很多页面时,外部样式表将是理想的选择.在使用外部样式表的情况下,你可以通过改变一个文件来改变整个站点的外观.每个页面使用 <link> 标签链接到样式表.<link> 标签在(文档的)头部: <head> <link rel="stylesheet" type="text/css" href=&qu

oracle可以一次性插入多条记录吗?

问题描述 oracle可以一次性插入多条记录吗? 而且数据还是有重复的,比如说要插入一个日期和一个上班状况,日期是主键,数据是:2015-05-10,请假:2015-05-11,请假:2015-05-12,请假.本来用的是insert into ... select...from dual union select......,但是报错违反唯一约束条件 刚开始做.不太会还请指教 解决方案 为什么要用日期当主键啊...不会重复么??? 解决方案二: insert into table(...)se

PowerPoint中插入视频的三种方法

为了能更好地帮助大家合理地在PowerPoint课件中 插入和播放http://www.aliyun.com/zixun/aggregation/18246.html">视频文件,本文特向大家介绍PowerPoint中插入和处理视频的三种方法. 直接播放视频 这种播放方法是将事先准备好的视频文件作为电影文件直接插入到幻灯片中,该方法是最简单.最直观的一种方法,使用这种方法将视频文件插入到幻灯片中后,PowerPoint只提供简单的[暂停]和[继续播放]控制,而没有其他更多的操作按钮供选择.

SQL Server 2012:SQL Server体系结构——一个查询的生命周期(第3部分)(完结)

原文:SQL Server 2012:SQL Server体系结构--一个查询的生命周期(第3部分)(完结) 一个简单的更新查询 现在应该知道只读取数据的查询生命周期,下一步来认定当你需要更新数据时会发生什么.这个部分通过看一个简单的UPDATE查询,修改刚才例子里读取的数据,来回答. 庆幸的是,直到存取方法(Access Methods)前,更新操作和刚才SELECT语句流程是一模一样的. 这次存取方法(Access Methods)需要修改数据,因此在I/O请求传递前,修改的细节要存放于硬盘

SQL Server使用Merge语句当源表数据集为空时,无法进行查询的问题_MsSql

面举一个例子来具体说明一下: 有两个表SourceTable为登陆表,TargetTable为授权表,如果访问用户在登陆表中,更新授权表的授权级别,否则授权0表示游客.sql语句如下: --SourceTable为登陆表,TargetTable为授权表 --如果访问用户在登陆表中,更新授权表的授权级别,否则授权0表示游客. create table SourceTable(UserName nvarchar(10),Pwd int,[Level] int) create table Target

SQL Server中一个隐性的IO性能杀手-Forwarded record

原文:SQL Server中一个隐性的IO性能杀手-Forwarded record 简介     最近在一个客户那里注意到一个计数器很高(Forwarded Records/Sec),伴随着间歇性的磁盘等待队列的波动.本篇文章分享什么是forwarded record,并从原理上谈一谈为什么Forwarded record会造成额外的IO.   存放原理     在SQL Server中,当数据是以堆的形式存放时,数据是无序的,所有非聚集索引的指针存放指向物理地址的RID.当数据行中的变长列增