建了一张 book(图书)表 字段名称 类型          备注
id int          图书编号(主键)
ISBN varchar(30) ISBN
name varchar(50) 图书名称(不可为空)
kind_num  int              图书类型编号
author varchar(32) 作者
price money          价格
pub varchar(100) 出版社
brief varchar(100) 图书简介请问如何写一个触发器实现id的自动编号 谢谢了

解决方案 »

  1.   

    /****** 对象:  Table [dbo].[BOOK]    脚本日期: 05/22/2011 13:52:12 ******/
    CREATE TABLE [dbo].[book](
    id int identity(1,1),
    ISBN varchar(30),
    name varchar(50) not null,
    kind_num int,
    author varchar(32),
    price money,
    pub varchar(100),
    brief varchar(100)
     CONSTRAINT [PK_book] PRIMARY KEY CLUSTERED 
    (
    [id] ASC
    ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
    ) ON [PRIMARY]
    GO
      

  2.   

    请问 
    CONSTRAINT [PK_book] PRIMARY KEY CLUSTERED 
    (
        [id] ASC
    ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
    ) ON [PRIMARY]
    GO 这段语句是什么意思 谢谢了
      

  3.   


    CREATE TRIGGER TR FOR INSERT
    AS
    DECLARE @MAXID INT
    DECLARE @ISBN VARCHAR(30)
    SELECT @MAXID = MAX(ID) FROM BOOK
    UPDATE B SET ID = @MAXID + 1 FROM BOOK B
    WHERE ISBN = @ISBN
    GO
      

  4.   


    CREATE TRIGGER TR FOR INSERT
    AS
    DECLARE @MAXID INT
    DECLARE @ISBN VARCHAR(30)
    SELECT @MAXID = MAX(ID) FROM BOOK
    SELECT @ISBN = ISBN FROM INSERTED
    UPDATE B SET ID = @MAXID + 1 FROM BOOK B
    WHERE ISBN = @ISBN
    GO
      

  5.   

    DECLARE @ISBN VARCHAR(30)
     为什么选择的是ISBN?
      

  6.   


    这句是创建主键,不用管它.
    关键是:
    id int identity(1,1),
    它创建了一个标识列,以1开始,每行自动增加1.
      

  7.   

    id int identity(1,1) primary key 也是设置主键的吧
    为什么你写的那么复杂的?
      

  8.   

    id int identity(1,1) primary key 直接就满足了