62,239
社区成员




using (System.Data.SqlClient.SqlBulkCopy sqlBC = new System.Data.SqlClient.SqlBulkCopy(strcon,SqlBulkCopyOptions.FireTriggers))
{
sqlBC.BatchSize = 100000;
sqlBC.BulkCopyTimeout = 120;
sqlBC.DestinationTableName = "dbo.DX_Customer";
sqlBC.ColumnMappings.Add("姓名", "CustomerName");
sqlBC.ColumnMappings.Add("性别", "Sex");
sqlBC.ColumnMappings.Add("地址", "Address");
sqlBC.ColumnMappings.Add("单位", "Company");
sqlBC.ColumnMappings.Add("手机", "Mobile");
sqlBC.ColumnMappings.Add("电话", "Telephone");
sqlBC.ColumnMappings.Add("邮箱", "Email");
sqlBC.WriteToServer(dtExcelImport);
}
createtrigger [dbo].[CustomerNumber]
on [dbo].[DX_Customer]
After insert
as
declare @ID int
--定义游标获取符和条件的客户
declare cursor_title cursor for
select ID from inserted
--打开游标
open cursor_title
--提取游标第一行
fetch next from cursor_title into @ID
--循环提取游标内容
while @@FETCH_STATUS=0
begin
declare @Code varchar(10)
declare @Date varchar(4)
set @Date= SUBSTRING(CONVERT(varchar(100), GETDATE(), 12),1,4)
select @Code=MAX(CustomerNumber) from DX_Customer where CustomerNumber like ''+@Date+'%' and CustomerNumber is not null
if @Code>0
begin
set @Code=@Code+1
end
else
begin
set @Code=@Date+'00001'
end
update DX_Customer set CustomerNumber=@Code where DX_Customer.ID=@ID
--获取游标下一行
fetch next from cursor_title into @ID
end
--关闭游标
close cursor_title
--释放游标资源
deallocate cursor_title