当前位置:编程学习 > C#/ASP.NET >>

SQL server 2005 批量插入

我要批量插入10条记录
如插入一个表,
表结构
ID NUM

我要批量插入NUM的值为1到10的.
语句要怎么写呢?
数据库方面是否需要设置什么呢.最多批量插入多少条记录呢? --------------------编程问答-------------------- 没什么设置。最简单的方法,执行10次循环插入就是了。

比如:

for(int i=0;i<10;i++)
{
  //执行插入的代码
} --------------------编程问答-------------------- 我认为要实现批量插入你需要先构造有10个记录的集合
但是构造这个集合的过程,貌似又是一个非批量插入的过程,当然我们不考虑直接写死的方式
比如:
ID如果是自增长的,批量插入就是这样

INSERT INTO Table1
SELECT 1 
UNION 
SELECT 2
UNION
SELECT 3
...
UNION
SELECT 10


但是不考虑这种方式,我也没有什么好方法 --------------------编程问答-------------------- for(int i=0;i<10;i++){}
或在存储过程中
declare @i int
while(@i<10)
begin

set @i=@i+1
end --------------------编程问答-------------------- 不能
insert TB(NUM) values(1);insert TB(NUM) values(2);insert TB(NUM) values(3);insert TB(NUM) values(4);insert TB(NUM) values(5);insert TB(NUM) values(6);insert TB(NUM) values(7);insert TB(NUM) values(8);insert TB(NUM) values(9);insert TB(NUM) values(10); --------------------编程问答--------------------
引用 2 楼 yumenjianke 的回复:
我认为要实现批量插入你需要先构造有10个记录的集合
但是构造这个集合的过程,貌似又是一个非批量插入的过程,当然我们不考虑直接写死的方式
比如:
ID如果是自增长的,批量插入就是这样
SQL codeINSERTINTO Table1SELECT1UNIONSELECT2UNIONSELECT3
...UNIONSELECT10

但是不考虑这种方式,我也没有什么好方法


~~~ --------------------编程问答--------------------
INSERT INTO Table1
SELECT 1 
UNION 
SELECT 2
UNION
SELECT 3
...
UNION
SELECT 10

如果使用这种方法.最大可以添加多少个UNION呢? --------------------编程问答-------------------- 很多很多,我每次都是分几段插入的,或者还可以拼一个结果集用SqlBulkCopy批量插入
大致过程是:
SqlBulkCopy bcp = new SqlBulkCopy("连接");
bcp.BatchSize = 条目数;
bcp.DestinationTableName = tablename;
//添加字段对应
bcp.ColumnMappings.Add(,);
//入库
bcp.WriteToServer(datatable);
具体的可以看看msdn的文档,比较详细
引用 6 楼 wozhidaode2010 的回复:
C# codeINSERT INTO Table1
SELECT1 
UNION 
SELECT2
UNION
SELECT3
...
UNION
SELECT10
如果使用这种方法.最大可以添加多少个UNION呢?
--------------------编程问答--------------------
引用 7 楼 liangchencf 的回复:
很多很多,我每次都是分几段插入的,或者还可以拼一个结果集用SqlBulkCopy批量插入
大致过程是:
SqlBulkCopy bcp = new SqlBulkCopy("连接");
bcp.BatchSize = 条目数;
bcp.DestinationTableName = tablename;
//添加字段对应
bcp.ColumnMappings.Add(,);
//入库
bcp.WriteToServer(datatable);
具体的可以看看msdn的文档,比较详细
引用 6 楼 wozhidaode2010 的回复:C# codeINSERT INTO Table1 SELECT1 UNION SELECT2 UNION SELECT3 ... UNION SELECT10 如果使用这种方法.最大可以添加多少个UNION呢?


SqlBulkCopy还是值得推荐的. --------------------编程问答--------------------  using (SqlBulkCopy insertSqlBulk = new SqlBulkCopy(_conn)) 
                { 
                    foreach (DataTable dt in ds.Tables) 
                    { 
                        insertSqlBulk.DestinationTableName = dt.TableName; 
                        insertSqlBulk.WriteToServer(dt); 
                    } 
                } 
            }
曾经看到别人用过这样的代码进行批量插入数据,但是我没有用过,
不过现在在做的程序中有用到这个问题,所以粘出来相互学习下, --------------------编程问答-------------------- 循环真不是一个好办法,SQL公司应该开发一个批量插入的功能,循环太费时间了 --------------------编程问答-------------------- ,SQL公司应该开发一个批量插入的功能,循环太费时间了 --------------------编程问答--------------------
引用 11 楼 wowmboy 的回复:
,SQL公司应该开发一个批量插入的功能,循环太费时间了


开发了啊,就是这个SqlBulkCopy bcp = new SqlBulkCopy("连接");
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,