1目标要更新的表 DestTableName;
3创建一个存储过程
B)insert into DestTableName(Field1,Field2,...) select Field1,.. from @typeTableName
示例程序实现:
using
System;@H_502_25@
System.Diagnostics;@H_502_25@
System.Data;@H_502_25@
System.Data.sqlClient;@H_502_25@
com.DataAccess;@H_502_25@@H_502_25@
namespace
ConsoleAppInsertTest@H_502_25@ {@H_502_25@
class
Program@H_502_25@ {@H_502_25@
static
string
connectionString
=
sqlHelper.ConnectionStringLocalTransaction;
//
数据库连接字符串
@H_502_25@
int
count
1000000
;
插入的条数
void
Main(
[] args)@H_502_25@ {@H_502_25@
long commonInsertRunTime = CommonInsert();@H_502_25@
Console.WriteLine(string.Format("普通方式插入{1}条数据所用的时间是{0}毫秒",commonInsertRunTime,count));
long
sqlBulkcopyInsertRunTime
sqlBulkcopyInsert();@H_502_25@ Console.WriteLine(
.Format(
"
使用sqlBulkcopy插入{1}条数据所用的时间是{0}毫秒
"
,sqlBulkcopyInsertRunTime,count));@H_502_25@@H_502_25@
TVPInsertRunTime
TVPInsert();@H_502_25@ Console.WriteLine(
使用表值方式(TVP)插入{1}条数据所用的时间是{0}毫秒
502_25@ }@H_502_25@@H_502_25@
///
<summary>
@H_502_25@
普通调用存储过程插入数据@H_502_25@
</summary>
<returns></returns>
@H_502_25@
private
CommonInsert()@H_502_25@ {@H_502_25@ Stopwatch stopwatch
new
Stopwatch();@H_502_25@ stopwatch.Start();@H_502_25@@H_502_25@
passportKey;@H_502_25@
for
(
i
0
; i
<
count; i
++
)@H_502_25@ {@H_502_25@ passportKey
Guid.NewGuid().ToString();@H_502_25@ sqlParameter[] sqlParameter
{
sqlParameter(
@passport
ssportKey) };@H_502_25@ sqlHelper.ExecuteNonQuery(connectionString,CommandType.StoredProcedure,
CreatePassport
sqlParameter);@H_502_25@ }@H_502_25@ stopwatch.Stop();@H_502_25@
return
stopwatch.ElapsedMilliseconds;@H_502_25@ }@H_502_25@@H_502_25@
使用sqlBulkcopy方式插入数据@H_502_25@
<param name="dataTable"></param>
sqlBulkcopyInsert()@H_502_25@ {@H_502_25@ Stopwatch stopwatch
Stopwatch();@H_502_25@ stopwatch.Start();@H_502_25@@H_502_25@ DataTable dataTable
GetTableSchema();@H_502_25@
Guid.NewGuid().ToString();@H_502_25@ DaTarow daTarow
dataTable.NewRow();@H_502_25@ daTarow[
]
passportKey;@H_502_25@ dataTable.Rows.Add(daTarow);@H_502_25@ }@H_502_25@@H_502_25@ sqlBulkcopy sqlBulkcopy
sqlBulkcopy(connectionString);@H_502_25@ sqlBulkcopy.DestinationTableName
Passport
;@H_502_25@ sqlBulkcopy.BatchSize
dataTable.Rows.Count;@H_502_25@ sqlConnection sqlConnection
sqlConnection(connectionString);@H_502_25@ sqlConnection.open();@H_502_25@
if
(dataTable
!=
null
&&
dataTable.Rows.Count
!=
)@H_502_25@ {@H_502_25@ sqlBulkcopy.WritetoServer(dataTable);@H_502_25@ }@H_502_25@ sqlBulkcopy.Close();@H_502_25@ sqlConnection.Close();@H_502_25@@H_502_25@ stopwatch.Stop();@H_502_25@
stopwatch.ElapsedMilliseconds;@H_502_25@ }@H_502_25@@H_502_25@
TVPInsert()@H_502_25@ {@H_502_25@ Stopwatch stopwatch
passportKey;@H_502_25@ dataTable.Rows.Add(daTarow);@H_502_25@ }@H_502_25@@H_502_25@ sqlParameter[] sqlParameter
@TVP
502_25@ sqlHelper.ExecuteNonQuery(connectionString,0)">CreatePassportWithTVP
sqlParameter);@H_502_25@@H_502_25@ stopwatch.Stop();@H_502_25@
DataTable GetTableSchema()@H_502_25@ {@H_502_25@ DataTable dataTable
DataTable();@H_502_25@ dataTable.Columns.AddRange(
DataColumn[] {
DataColumn(
PassportKey
) });@H_502_25@@H_502_25@
dataTable; } } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。