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

请教一个关于Execl导入SQL,触发器重复插入了最后一条记录的问题。。。

NewSim表上的触发器
create trigger Trig_Insert_Sim
on NewSim
after insert
as
declare @NewSimNum varchar(20)
declare @SimStateID int
declare @SimTypeID int
declare @UseCircsID int
declare @DefaultMoney int
declare @BeginDate varchar(20)
select top 1 @NewSimNum=NewSimNum,@SimStateID=SimStateID,@SimTypeID=SimTypeID,@UseCircsID=UseCircsID,@DefaultMoney=DefaultMoney,@BeginDate=BeginDate from NewSim order by NewSimID desc
begin tran
insert Sim(SimNum,SimStateID,SimTypeID,UseCircsID,DefaultMoney,BeginDate)
select @NewSimNum,@SimStateID,@SimTypeID,@UseCircsID,@DefaultMoney,@BeginDate from NewSim
if @@error=0
commit tran
else
rollback tran

导入数据,
insert into NewSim(NewSimNum,SimStateID,SimTypeID,UseCircsID,DefaultMoney,BeginDate) select * from OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database="+ path +";','select * from [NewSim$]')

这样导入可以执行触发器,但是只是插入了最后一条记录,请问有什么办法呢? --------------------编程问答-------------------- 怎么就每人进来瞧瞧卅。。。。。自己顶。。。。。。在线等啊。。。。。。
解决就结贴。。。。。。。。。。。。。。。。 --------------------编程问答-------------------- 一条一条的导入,
看看触发器是怎么做的。
是导一条就触发一次,
还是总共只触发一次。 --------------------编程问答-------------------- 问题是这样子的,导入10条数据,触发器也插入了10条,但是这10条数据是重复的最后一条记录,如果有唯一约束,就只会插入1条。 --------------------编程问答-------------------- 有点像是导入了10条记录,但在SQL里并不是一条一条的插入到表中,可表里又确实插入了那么多条数据,触发器还是执行了那么多次的插入操作。这时候,触发器取的是最后一条记录,所以就重复插入了10条记录。那应该如何解决这个问题呢?

导入方式的原因???
可使用其他方式是禁用触发器的。
触发器的原因吗?
那该怎么写呢?
还是????

期盼高人予以解答,非常感谢。。。 --------------------编程问答--------------------
select   top   1   @NewSimNum=NewSimNum,@SimStateID=SimStateID,@SimTypeID=SimTypeID,@UseCircsID=UseCircsID,@DefaultMoney=DefaultMoney,@BeginDate=BeginDate   from   INSERTED   order   by   NewSimID   desc 
试下看看 
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,