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); --------------------编程问答--------------------
~~~ --------------------编程问答--------------------
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的文档,比较详细
--------------------编程问答--------------------
SqlBulkCopy还是值得推荐的. --------------------编程问答-------------------- using (SqlBulkCopy insertSqlBulk = new SqlBulkCopy(_conn))
{
foreach (DataTable dt in ds.Tables)
{
insertSqlBulk.DestinationTableName = dt.TableName;
insertSqlBulk.WriteToServer(dt);
}
}
}
曾经看到别人用过这样的代码进行批量插入数据,但是我没有用过,
不过现在在做的程序中有用到这个问题,所以粘出来相互学习下, --------------------编程问答-------------------- 循环真不是一个好办法,SQL公司应该开发一个批量插入的功能,循环太费时间了 --------------------编程问答-------------------- ,SQL公司应该开发一个批量插入的功能,循环太费时间了 --------------------编程问答--------------------
开发了啊,就是这个SqlBulkCopy bcp = new SqlBulkCopy("连接");
补充:.NET技术 , C#