向SqlServer数据库插入数据
- Insert Values
- Insert Select
- Insert Exec
- Select Into
- Bulk Insert
Insert Values是最常用的一种插入数据的方式,基本语法如下,表名之后可以指定目标列的名称,这种显式的指定目标列的名称是可选的,但是这种做法的好处是对语句的列值列名之间的关联关系进行控制,而不必单纯的依赖定义表时
各个列出现的顺序
INSERT INTO dbo.DimDate
( DataKey ,
Year ,
Qu ,
QuCN ,
Month ,
MonthCN ,
Ten ,
TenCN ,
Week ,
WeekDay ,
Day ,
Date
)
VALUES ( 0 , -- DataKey - int
0 , -- Year - int
0 , -- Qu - int
'' , -- QuCN - varchar(20)
0 , -- Month - int
'' , -- MonthCN - varchar(20)
0 , -- Ten - int
'' , -- TenCN - varchar(20)
0 , -- Week - int
'' , -- WeekDay - varchar(20)
0 , -- Day - int
'2014-09-23 13:34:16' -- Date - datetime
)
确定列值的优先级顺序:给定的值》默认值》Null
Sql2008增强了Values功能,允许在一条语句中指定由逗号隔开的多条记录
INSERT INTO dbo.Table_1 ( ID ) VALUES ( 0 ),( 1 ),( 2 )
使用Values构建虚拟表
SELECT * FROM (VALUES ( 0 ),( 1 ),( 2 )) AS a(id)
Insert Select
Insert Select 将一组由Select查询返回的结果行插入到目标表中(目标表是已经存在的表,这一点和Select Into有区别)
INSERT INTO dbo.Table_1 SELECT * FROM dbo.Table_2
Insert Exec
Insert Exec 语句可以把存储过程或动态Sql批处理返回的结果集插入到目标表
Select Into
Select Into的作用是创建一个目标表,并用返回的结果集填充它,不能用这个语句向已经存在的表中插入数据,
当指定的目标表是临时表时自动创建一个临时表,指定为用户表时创建一个用户表,
Select Into 会复制来源表的基本结构(包括列名、数据类型、是否允许NUll以及IDentity属性),不会复制的三样东西(约束、索引、触发器)
Select into的另一个优点:如果数据库的属性没有设置成完成恢复模式,Select into 就会按照最小日志记录模式来执行操作
Bulk Insert
这种方式用的比较少,用于将文件中的数据导入一个已经存在的表
示例本例从指定的数据文件中导入订单详细信息,该文件使用竖杠 (|) 字符作为字段终止符,使用 |/n 作为行终止符。
BULK INSERT Northwind.dbo.[Order Details] FROM 'f:/orders/lineitem.tbl'
WITH (
FIELDTERMINATOR = '|',
ROWTERMINATOR = '|/n'
)
向SqlServer数据库插入数据的更多相关文章
- sqlServer数据库插入数据后返回刚插入记录的自增ID
insert into tabls1(row1,row1) values('0','0') select @@IDENTITY
- SQLServer 批量插入数据的两种方法
SQLServer 批量插入数据的两种方法-发布:dxy 字体:[增加 减小] 类型:转载 在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Ins ...
- SQLServer数据库误删数据找回
记一次SQLServer数据库误删数据找回 昨天 同事在本机清理数据库表时,连接到了生产机,误删了二十几张表,幸好是晚上加班的时候删除的,生产机上当时是一天一备份,还原备份是最后的策略,最关键的还是要 ...
- JMeter 利用Jmeter批量数据库插入数据
利用Jmeter批量数据库插入数据 by:授客 QQ:1033553122 1. 启动Jmeter 2. 添加 DBC Connection Configuration 右键线程组-> ...
- 在function module 中向数据库插入数据
http://www.sapjx.com/abap-function-module.html 1: 应该在function module 中向数据库插入数据
- 使用mybatis向oracle数据库插入数据异常
遇到了使用mybatis向oracle数据库插入数据异常的问题, 具体的报错如下:org.springframework.jdbc.UncategorizedSQLException: ### Err ...
- Excel向数据库插入数据和数据库向Excel导出数据
为了熟悉java里工作簿的相关知识点,所以找了“Excel向数据库插入数据和数据库向Excel导出数据”的功能来实现. 注意事项:1,mysql数据库: 2,需要导入的jar包有 jxl.jar,my ...
- MySQL数据库插入数据出现 ERROR 1526 (HY000): Table has no partition for value xxx
MySQL数据库插入数据出现ERROR 1526 (HY000): Table has no partition for value xxx工作的时候发现无法插入数据,报错:ERROR 1526 (H ...
- 数据库插入数据返回当前主键ID值方法
当我们插入一条数据的时候,我们很多时候都想立刻获取当前插入的主键值返回以做它用.我们通常的做法有如下几种: 1. 先 select max(id) +1 ,然后将+1后的值作为主键插入数据库: 2. ...
随机推荐
- ASP.NET WebForm中用async/await实现异步
1. 在.aspx中添加异步标记 <%@ Page Language="C#" Async="true"%> 2. 在.aspx.cs或者.ascx ...
- 第五章:创建DbContext
一.DbContext介绍 DbContext是Entity Framework(EF)操作数据库的上下文网关(接口).我们对数据库的所有操作都是通过DbContext完成的.下面我们将讨论在code ...
- CO-类的本质、description方法
类的本质 1. 类也是个对象 其实类也是一个对象,是Class类型的对象,简称“类对象” Class类型的定义 typedef struct objc_class *Class; 类名就代表着类对象 ...
- Centos系统下邮件服务器的搭建
原文地址:http://lomu.me/post/linux-email-server
- Python之路【目录】 2
http://www.cnblogs.com/wupeiqi/articles/4938499.html
- DOS批处理中%cd%和%~dp0的区别
DOS批处理中%cd%和%~dp0的区别 在DOS的批处理中,有时候需要知道当前的路径. 在DOS中,有两个环境变量可以跟当前路径有关,一个是%cd%, 一个是%~dp0. 这两个变量 ...
- va_list深究
va_list深究 2011-04-21 21:06:11| 分类: C/C++|字号 订阅 VA函数(variable argument function),参数个数可变函数,又称可变参数 ...
- 【AngularJS】—— 10 指令的复用
前面练习了如何自定义指令,这里练习一下指令在不同的控制器中如何复用. —— 来自<慕课网 指令3> 首先看一下一个小例子,通过自定义指令,捕获鼠标事件,并触发控制器中的方法. 单个控制器的 ...
- 基于iSCSI的SQL Server 2012群集测试(三)--SQL Server 2012群集安装总结
5.SQL Server 2012群集安装总结 5.1 群集与非群集的安装区别总结 SQL Server虚拟名称: 非群集环境下,本地服务器的名称就是SQL Server服务器名称:但在群集环境下,由 ...
- R语言 小程序
x<-sample(1:11) x 日期和时间 ###Data and Time### > data_time <- data.frame(data = c("2015-0 ...