set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
goALTER PROCEDURE [dbo].[PRO_AddBooks]
@BookID int,
@FartherTypeID int,
@DetailTypeID int,
@LevelTypeID int,
@BookName varchar(50),
@MarketPrice money,
@MenberPrice money,
@Rebate float,
@BookWriter varchar(100),
@BookConcern varchar(50),
@ISBN varchar(20),
@BookIntroduce varchar(5000),
@AddDateTime datetime,
@BookPicture varchar(200)
AS
BEGIN 
INSERT INTO Books
VALUES (@FartherTypeID,@DetailTypeID,@LevelTypeID,@BookName,@MarketPrice,@MenberPrice,@Rebate)
SELECT @BookID=MAX(BookID) FROM Books
INSERT INTO BooksDetails
VALUES (@BookID,@BookWriter,@BookConcern,@ISBN,@BookIntroduce,@AddDateTime,@BookPicture)
ENDbooks是基本信息表,BooksDetails是详细详细表,两表之间以bookid来关联
我用这个来获得SELECT @BookID=MAX(BookID) FROM Books刚添加的数据。。
可是不行
请教 高手指点

解决方案 »

  1.   

    既然bookid是自动增长,那就不要当作参数啦ALTER PROCEDURE [dbo].[PRO_AddBooks]
    @FartherTypeID int,
    @DetailTypeID int,
    @LevelTypeID int,
    @BookName varchar(50),
    @MarketPrice money,
    @MenberPrice money,
    @Rebate float,
    @BookWriter varchar(100),
    @BookConcern varchar(50),
    @ISBN varchar(20),
    @BookIntroduce varchar(5000),
    @AddDateTime datetime,
    @BookPicture varchar(200)
    AS
        BEGIN 
            DECLARE @BookID int
            INSERT INTO Books
            VALUES (@FartherTypeID,@DetailTypeID,@LevelTypeID,@BookName,@MarketPrice,@MenberPrice,@Rebate)
            SELECT @BookID=SCOPE_IDENTITY()
            INSERT INTO BooksDetails
            VALUES (@BookID,@BookWriter,@BookConcern,@ISBN,@BookIntroduce,@AddDateTime,@BookPicture)
        END