当前位置:首页 » 编程语言 » sql中向表批量插入数据
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql中向表批量插入数据

发布时间: 2023-05-23 09:52:33

数据库中我想要批量插入数据sql语句怎么写。

批量插入不要用循环,直接sql语句就可以了:
insert
into
table
(`field`,
`field2`)
values
('val',
'val2'),
('v2',
'v3');
这样就可以了,上面的sql批量了2条,以此类推,中间隔半角逗号即可。
我就晕了,你不会用程序处理啊,用一个array_map然后implode不久可以了吗?

Ⅱ plsql怎么往表里插入多条数据

1、采用insert into values 语句插入一条,写很多条语句即可多条数据,这种主要针对于离散值以及一些基础信息的录入,如:insert into test(xh,mc) values('123','测试');
如果插入的数据有规律,可利用for、loop循环插入,主要用于批量生成测试数据
begin
for i in 1 .. 100 loop
insert into test(xh,mc) values(i||'','测试');
end loop;
end ;。
2、采用insert into selct from 语句来一次性插入一个集合,这种主要依据于要插入的数据源已经存储于数据库对象中,或者利用al虚表来构造数据,经过加工后写入一个集合。
insert into test (xh,mx) select '123','测试' from al;
3、采用plsql等工具、或者oracle的imp、impdp命令来导入,这种主要用数据库与数据库之间的大批量数据导入,导入的数据格式为plsql的pde、oracle的dmp等。dmp文件可使用
table_exists_action参数控制导入动作:replace替换原表,truncate清除原表数据再导入,append增量导入数据,当然impdp数据泵的导入要依赖于directory路径。
impdp 用户名/密码 mpfile=123.dmp logfile=123.log directory=imp_dir tables=test table_exists_action=append
4、使用excel文件直接拷贝。这种主要用于要写入的数据已是excel文件或者行列分明的其它格式文件,每一列的值和表结构相对应,可直接打开表的行级锁,把数据拷贝进入。
打开行级锁方法:
select t.*,rowid from 表名 t where 1=2;
select * from 表名 where 1=2 for update;
直接把excel数据拷贝到表里

Ⅲ 怎样用SQL向数据库中批量的插入数据,主键是随机生成的

代码如下:
--创建测试表
CREATE TABLE [Identity](
Id INT IDENTITY(1,2) NOT NULL PRIMARY KEY,--种子的起始值1,步长2
Number VARCHAR(20) UNIQUE NOT NULL,
Name VARCHAR(20) NOT NULL,
Password VARCHAR(20) DEFAULT(123),
Description VARCHAR(40) NULL
)
--插入记录
INSERT INTO [Identity](Number,Name,Description) VALUES('001','1st','Id=1,因为起始值1')
INSERT INTO [Identity](Number,Name,Description) VALUES('002','2nd','Id=3,因为起始值1,步长2')
INSERT INTO [Identity](Number,Name,Description) VALUES('003','3rd','Id=5,由于字符长度超长,报错插入失败,造成此Id产生后被放弃')
INSERT INTO [Identity](Number,Name,Description) VALUES('004','4th','Id=7 not 5,因为第三条记录插入失败')
--检索记录,查看结果
SELECT * FROM [Identity]

Ⅳ 如何在SQL SERVER中批量添加数据

sql不支持批量添加数据,不过可以复制别的表的数据到新表,具体用法
select * into 新表 from 原表
要什么数据就把*改成什么就可以了,不改就是复制整张表,不过复制只会复制数据,不会复制表的结构

Ⅳ 如何用SQL语句将数据批量插入数据库

这种情况使用xml来进行批量插入.
1.asp.net页面上抓取数据,转换成xml字符串
2.将这个字符串作为参数传给存储过程
3.存储过程里,将这个xml读取成临时表
4.整个临时表插入到目标数据表中,这个过程可以使用sql
server的事务;其实在这里用不用事务问题都不大了,因为存储过程出错,数据插不进去的,还会抛出异常到asp.net后台,让后台进行处理异常.
您用游标或asp.net代码来循环,速度会比较慢的.

Ⅵ sql 从A表中查询数据批量 插入B表中,如何设置批量处理

这个需要看你表结构
目测,你pd.OrderNO字贺贺返段是主键吗?
如果是的话,你禅饥可以在你语句里限制一下
比如
insert GS_ProctTime
select pd.OrderNO,'pl22' plantcode,'机作' plantname,pd.pdProctCode,pd.pdName,'' ttype, sum(isnull(sumptTimeB,0)) t1,sum(isnull(pcTimeCxJ,0))*1.00 t2,0.00 t3,0.00 t4
from dbo.GS_pd_Procts pd
join V_GS_ProcessTime t on pd.orderno=ptProctCode and t.ptPlantCode='pl22'
where pd.OrderNO<=1000
group by pd.OrderNO,pd.pdProctCode,pd.pdName
如果再执行
insert GS_ProctTime
select pd.OrderNO,'pl22' plantcode,'机作'拍空 plantname,pd.pdProctCode,pd.pdName,'' ttype, sum(isnull(sumptTimeB,0)) t1,sum(isnull(pcTimeCxJ,0))*1.00 t2,0.00 t3,0.00 t4
from dbo.GS_pd_Procts pd
join V_GS_ProcessTime t on pd.orderno=ptProctCode and t.ptPlantCode='pl22'
where pd.OrderNO between 1001 and 2000
group by pd.OrderNO,pd.pdProctCode,pd.pdName

Ⅶ 怎么样快速向SQL数据库插入大数据量的数据

添加数据需要知道往哪张表添加,以及自己要添加的内容,然后可用insert语句执行。

1、以sqlserver2008r2为例,登录SQL Server Management Studio到指定的数据库。

2、登录后点击“新建查询”。

Ⅷ 怎样向SQL Server中大批量插入数据

一次性插入大量数据,只能使用循环,
如:游标,while 循环语句
下面介绍While 循环插入数据,
SQL 代码如下:
IF OBJECT_ID('dbo.Nums') IS NOT NULL
DROP TABLE dbo.Nums;
GO
CREATE TABLE dbo.Nums(n INT NOT NULL PRIMARY KEY);
DECLARE @max AS INT, @rc AS INT;
SET @max = 5000000;
SET @rc = 1;
INSERT INTO Nums VALUES(1);
WHILE @rc * 2 <= @max
BEGIN
INSERT INTO dbo.Nums SELECT n + @rc FROM dbo.Nums;
SET @rc = @rc * 2;
END
INSERT INTO dbo.Nums SELECT n + @rc FROM dbo.Nums WHERE n + @rc <= @max;
--以上函数取自Inside SQL Server 2005: T-SQL Query一书。
INSERT dbo.Sample SELECT n, RAND(CAST(NEWID() AS BINARY(16))) FROM Nums

Ⅸ SQL批量插入数据

一、针对批量插入数据,如果量不是太多,可以多条SQL语句运行就可以了,

类似下面的语句,当然可以使用excel 编辑后,复制到查询器中运行,

insert into table(a,b) values('1','a')

insert into table(a,b) values('2','b')

insert into table(a,b) values('3','c')


二、大量数批量插入,即数据表的移植,数据备份转换之类的,就需要工具,比如MSSQL的DTS工具,pb的数据通道 等等。这里介绍一下 DTS工具。

Ⅹ 如何在SQL Server中批量导入数据

方案一、循环导入

实现方式是利用数据库访问类调用存储过程,利用循环逐条插入。很明显,这种方式效率并不高

方案二、使用Bulk插入

bulk方法主要思想是通过在客户端把数据都缓存在Table中,然后利用SqlBulkCopy一次性把Table中的数据插入到数据库,效率非常高

方案三:

利用SQLServer2008的新特性--表值参数(Table-Valued Parameter)。表值参数是SQLServer2008才有的一个新特性,使用这个新特性,我们可以把一个表类型作为参数传递到函数或存储过程里。

方案四:

对于单列字段,可以把要插入的数据进行字符串拼接,最后再在存储过程中拆分成数组,然后逐条插入。查了一下存储过程中参数的字符串的最大长度,然后除以字段的长度,算出一个值,很明显是可以满足要求的,只是这种方式跟第一种方式比起来,似乎没什么提高,因为原理都是一样的。

方案五:

考虑异步创建、消息队列等等。这种方案无论从设计上还是开发上,难度都是有的。