alter PROCEDURE p_AgSerItem_INSERT
(
@AgreeID int,
@SerID int,
@AirPortID int,
@AirClass int,
@RhumbID int,
@UnitID int,
@MUnitID int,
@CoinID int,
@UserID int,
@SP money,
@MUP money,
@UP money,
@CDate datetime,
@UDate datetime,
@FC float,
@SC float,
@IsValid bit,
@AirNo varchar(25),
@AirType varchar(25)
)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @trancount INT
DECLARE @PRIMARYKEYID INT
DECLARE @table TABLE(ID INT)
SELECT @trancount = @@TRANCOUNT
IF @trancount = 0
BEGIN TRANSACTION
ELSE
SAVE TRAN tran1
SET @PRIMARYKEYID = 0
BEGIN TRY
INSERT AgSerItem( [AgreeID], [SerID], [AirPortID], [AirClass], [RhumbID],
[UnitID], [MUnitID], [CoinID], [UserID], [SP], [MUP], [UP],
[CDate], [UDate], [FC], [SC], [IsValid], [AirNo], [AirType])
OUTPUT INSERTED.ID INTO @table
VALUES(@AgreeID,@SerID,@AirPortID,@AirClass,@RhumbID,@UnitID,@MUnitID,@CoinID,
@UserID,@SP,@MUP,@UP,@CDate,@UDate,@FC,@SC,@IsValid,@AirNo,@AirType )
SELECT @PRIMARYKEYID = id
FROM @table
IF @trancount = 0 COMMIT
END TRY
BEGIN CATCH
IF @trancount = 0
ROLLBACK
ELSE IF XACT_STATE() <> -1
ROLLBACK TRAN tran1
RETURN 0--操作失败
END CATCH
RETURN @PRIMARYKEYID
END
go