因本人对数据库不甚精通 所以请高手帮忙 回答后另开贴给分
问题如下
数据库表字段包括 A1 A2 A3 A4 A5 前台每分钟会储存数据过来 其中A1是编号 但和数据库里原有数据的编号不匹配 所以我想在数据储存过来的时候 把编号自动改成和原来匹配的 在原有数据的编号基础上每新增一条 编号自动加1   
比如数据库里原有数据的编号是 225 226 最后一条是226
但前台现在传来的是A1的数据是 3302200 我要在3302200 这条存进去的时候自动把编号改成 227 然后新数据依次是 228 229 这样存储  
存储过程该如何写 如何触发 请高手帮忙

解决方案 »

  1.   


    if object_id('pro_test')is not null
    drop proc pro_test
    go
    create proc pro_test
    (
    @A int,
    @B varchar(20),
    @C varchar(20)
    )
    as
    declare @ID int
    select @ID=top 1 ID from tb order by ID desc
    insert tb(A,B,C)
    select @ID,@B,@C
    go
      

  2.   


    if object_id('pro_test')is not null
    drop proc pro_test
    go
    create proc pro_test
    (
      @A int,
      @B varchar(20),
      @C varchar(20)
    )
    as
    declare @ID int
    select @ID=top 1 ID from tb order by ID desc
    insert tb(A,B,C)
    select @ID,@B,@C
    go
      

  3.   


    那就直接给表添加一个字段,自增类型的,也不要用触发器
    alter tb add ID int identity这样还不行的话就去建触发器吧
      

  4.   


    IF OBJECT_ID('tb') IS NOT NULL
    DROP TABLE tb
    GOcreate table tb
    (
      A1 varchar(10),
      A2 varchar(10),
      A3 varchar(10),
      A4 varchar(10),
      A5 varchar(10)
    )GoIF OBJECT_ID('MaxKey') IS NOT NULL
    DROP TABLE MaxKeyGO
    --自增主键管理表
    create table MaxKey
    (
       value int
    )insert into MaxKey select 226GoIF OBJECT_ID('[proc_insert]') IS NOT NULL
    DROP proc [proc_insert]GOCreate  proc [dbo].[proc_insert] (@A1 varchar(10),@A2 varchar(10),@A3 varchar(10),@A4 varchar(10),@A5 varchar(10))as
    begin      declare @sql varchar(8000)
          declare @value int
          update MaxKey set  value=value+1   --先更新再取出,防止多用户同时访问,造成主键重复
          select @value=value from MaxKey
          insert into tb select @value,@A2,@A3,@A4,@A5
       
    ENDgo
    --调用
     [dbo].[proc_insert] '3302200','a2','a3','a4','a5'
     
     
     select * from tb
      

  5.   

    if object_id('pro_test')is not null
    drop proc pro_test
    go
    create proc pro_test
    (
      @A int,
      @B varchar(20),
      @C varchar(20)
    )
    as
    declare @ID int
    select @ID=top 1 ID from tb order by ID desc
    insert tb(A,B,C)
    select @ID,@B,@C
    go 
      

  6.   

    4楼正解,你把A1列改成自增列,或者加一个自增列ID