ALTER PROCEDURE [dbo].[SpGs_FactionMember_Add]
    @FactionID int,
        @CharID int,
    @JoinTime int,
    @Ret int OUTPUT,
    @ErrMsg varchar(128) OUTPUT
AS 
BEGIN
        SET NOCOUNT ON;
        SET XACT_ABORT ON;
    
    if not exists(select 1 from dbo.[Char] where CharID = @CharID)
    begin
            set @ErrMsg='不存在此角色!'
        set @Ret = 3
        DELETE FROM dbo.FactionApply WHERE @FactionID=FactionID AND CharID=@CharID
                return -1
    end
    
    if exists(select 1 from dbo.FactionMember where CharID=@CharID)
        begin
                set @ErrMsg='此人已经加入帮派!'
        set @Ret = 2
        DELETE FROM dbo.FactionApply WHERE @FactionID=FactionID AND CharID=@CharID
                return -1
        end    BEGIN TRAN
                insert  into [dbo].[FactionMember]
                   (
                    [FactionID],
                    [MemberType],
                    [TitleType],
                    [CharID],
                    [AssignedPower],
                    [JoinTime],
                    [ForbiddenTalk],
                    [BelongToTang],
                    [Recommender_ID],
                    [Res],
                    [PrivateRes],
                    [CurrentPayMoney],
                    [StagePayMoney],
                    [TotalPayMoney],
                    [StageBattle],
                    [TotalBattle],
                    [CurrentContribute],
                    [StageContribute],
                    [TotalContribute],
                    [IsRentFree] 
                   )
            values  (
                     @FactionID,
                     14,
                     0,
                     @CharID,
                     0,
                     @JoinTime,
                     0,
                     0,
                     0,
                     '',
                     '',
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0,
                     0
                    )
            IF @@ERROR <> 0 
        BEGIN
                SET @Ret = 0
            SET @ErrMsg='插入帮派成员失败!'
            ROLLBACK;
            DELETE FROM dbo.FactionApply WHERE @FactionID=FactionID AND CharID=@CharID
            RETURN -1;
        END
        
        DELETE FROM dbo.FactionApply WHERE CharID=@CharID
                if @@ERROR<>0
                begin
                SET @Ret = 0;
                        set @ErrMsg='删除帮派申请列表失败!'
            ROLLBACK;
                        return -1
                end
        SET @Ret = 1
        SET @ErrMsg='插入帮派成员成功!'    
    COMMIT;
    return 1;END
求大腿帮忙