用SqlBulkCopy快速复制记录
说明:
SqlBulkCopyOptions 操作类型的明细
成员名称 | 说明 | |
---|---|---|
Default | 对所有选项使用默认值。 | |
KeepIdentity | 保留源标识值。如果未指定,则由目标分配标识值。 | |
CheckConstraints | 请在插入数据的同时检查约束。默认情况下,不检查约束。 | |
TableLock | 在批量复制操作期间获取批量更新锁。如果未指定,则使用行锁。 | |
KeepNulls | 保留目标表中的空值,而不管默认值的设置如何。如果未指定,则空值将由默认值替换(如果适用)。 | |
FireTriggers | 指定后,会导致服务器为插入到数据库中的行激发插入触发器。 | |
UseInternalTransaction | 如果已指定,则每一批批量复制操作将在事务中发生。如果指示了此选项,并且为构造函数提供了 SqlTransaction对象,则发生ArgumentException。 |
代码:
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(DBConnectionString,SqlBulkCopyOptions.FireTriggers))//SqlBulkCopyOptions.FireTriggers为打开触发器
{
bulkCopy.DestinationTableName = "dbo.bookinfo";
try
{
// Write from the source to the destination.
bulkCopy.WriteToServer(dr);
}
catch (Exception ex)
{
MessageBox(this.Page, ex.Message);
}
}