CREATE PROCEDURE Sp_Sort_Add 
@SortName varchar(50),
@KeyID int,
@Message varchar(50)
OUTPUT
AS 
  IF (@KeyID=0) 
    INSERT INTO Sort (RootID,Deep,OrderNum,SortName) VALUES(0,0,0,@SortName) 
  ELSE
    BEGIN
     DECLARE @RootID int,@ID int,@Deep int,@BegNum float,@EndNum float,@OrderNum float 
     SELECT @RootID=0,@ID=0,@Deep=0,@BegNum=0,@EndNum=0,@OrderNum=0 
     SELECT @RootID=RootID,@ID=ID,@BegNum=OrderNum,@Deep=Deep FROM Sort WHERE ID=@KeyID 
     IF (@ID=0) 
       BEGIN
        SELECT @Message='无此父级分类!' 
        RETURN 
       END
     ELSE 
       BEGIN
        IF (@RootID=0) SELECT @RootID=@ID
        SELECT @EndNum=OrderNum where RootID=@RootID AND OrderNum>@BegNum ORDER BY OrderNum 
        IF (@EndNum=0)
          SELECT @OrderNum=@BegNum+65536
        ELSE
         SELECT @OrderNum=(@BegNum+@EndNum)/2
        INSERT INTO Sort (RootID,Deep,OrderNum,SortName) VALUES(@RootID,@Deep+1,@OrderNum,@SortName) 
       END
    END
  Select @Message='成功' 
  RETURN