34,593
社区成员
发帖
与我相关
我的任务
分享
或
--@@identity
BEGIN TRAN --开始事务
declare @iden int
INSERT INTO A () VALUES (); --插入A表记录
set @iden=@@identity
INSERT INTO B (AID) VALUES ( @iden ); --插入B表记录
END TRAN --结束事务
BEGIN TRAN --开始事务
INSERT INTO A () VALUES (); --插入A表记录
INSERT INTO B (AID) VALUES ( SCOPE_IDENTITY() );
END TRAN --结束事务
BEGIN TRAN --开始事务
INSERT INTO A () VALUES (); --插入A表记录
INSERT INTO B (AID) VALUES ( @@identity ); --插入B表记录
END TRAN --结束事务
string sqlInsertA = "INSERT INTO A (index1, index2) VALUES ( @index1, @index2 );";
SqlParameter[] AParams = { new SqlParameter("@index1", SqlDbType.Int),
new SqlParameter("@index2", SqlDbType.Int)};
string sqlInsertB = "INSERT INTO B (AID, bindex) VALUES ( SCOPE_IDENTITY(), @bindex );";
SqlParameter BParams = new SqlParameter("@bindex", SqlDbType.Int);
SqlConnection conn = new SqlConnection( SQLHelper.ConnectionStringUserTrans );
conn.Open();
SqlTransaction trans = conn.BeginTransaction( IsolationLevel.ReadCommitted );
try
{
//插入A
SQLHelper.ExecuteNonQuery( trans, CommandType.Text, sqlInsertA, AParams );
//插入B
SQLHelper.ExecuteNonQuery( trans, CommandType.Text, sqlInsertB, BParams );
trans.Commit();
}
catch ( Exception e )
{
trans.Rollback();
}
finally
{
conn.Close();
}