流程:
1. C#中:
      开始事务
      批量插入1000条数据
      提交事务
      catch(Exception) 出错则回滚
2. SQLServer中:
      insert触发器,对于每一条新插入的数据都要执行一遍某存储过程问题:
C#提交事务时会catch到SqlException:"The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION."1. 如果直接在SQLServer的查询分析器中手动的插入1000条数据,触发器和存储过程的执行都没有任何问题;
2. 如果在C#批量插入数据时,只插入10条数据就没有问题,但是50条就会报错误!!C#:
try
{
cmdInsert = new SqlCommand(strInsertSQL, conn);
trans = conn.BeginTransaction(); // 开始事务
cmdInsert.Transaction = trans; // 将事务与SqlCommand关联
for(int i=0; i<ds.Tables[0].Rows.Count; i++)
{
    DataRow row = ds.Tables[0].Rows[i];
    SqlParameter[] paramArray = getParamArray(row);
    cmdInsert.Parameters.Clear();
     for (int j=0; j<paramArray.Length; j++)
    {
         cmdInsert.Parameters.Add(paramArray[j]);
    }
    cmdInsert.ExecuteNonQuery();
}
trans.Commit(); // 提交事务
}
catch(Exception ex)
{
    trans.Rollback();
}触发器:
CREATE TRIGGER [trigger_AppengTicketProc] ON [dbo].[TicketHistory] 
FOR INSERT
AS
DECLARE @TicketID int
SELECT @TicketID=TicketID from inserted
EXEC sp_AppendTicket @TicketID存储过程:
太长了,不贴了!