有一张入库单,分为主表和明细表,主表的单据号和明细表的单据关连,单据为为 Bill_no
主表的数据存放在 一个 DataTable 起名为:mainDt
明细表的数据存放在 一个 DataTable 起名为:infoDt录入数据时分别存放在  mainDt 和 infoDt  的DataTable 中在sql2008中创建一个存储过程:
create procedure InputOrder
{
  @oraderMain as  InMain readonly,      
  @orderDetail as InDetail readonly
 as
  ……
 //这里执行一段很长的代码
 }用户保存时,将两个DataTable: mainDt 和 infoDt  传给存储过程 InputOrder。
在存储过程 InputOrder中,首先取得主表的单据号+1,然后insert into 主表,
把新取得的单据号insert into 明细表。单据的保存用事务。现在情况来了,当有很多个用户同时在保存单据的时候,如果某个用户出现异常,要回滚操作,这时会出现断号的现象。
这种问题有哪方面的解决方案呢?