编号是自增的,以年月(201112)2011120001(0001)自动增长,新增数据库,两人同时对其进行新增,编号就会重复,怎样解决这个问题?

解决方案 »

  1.   

    按年月查询max(id) 然后+1
      

  2.   

    但另外一个人不知道我也在新增信息,我是先从数据库获取到当前最大的id,然后再新增的。这样数据库里边id就重复了....
      

  3.   

    前提是两个人用的是同一个数据库,是同时新增的,他得到最大的id是一样的...所以出现的id重复的问题....该怎么解决?????求解???
      

  4.   

    建表的时候 
    create table temp(
    id int identity(1,1) primary key not null,
    .......
    )
    id是自增列不会重复的,新增的时候id就不用添加了
      

  5.   

    触发器,生成唯一的值USE [AprilShop]
    GO
    /****** Object:  Trigger [dbo].[trigger_AutoSerialNumber]    Script Date: 12/06/2011 16:45:26 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GOALTER trigger [dbo].[trigger_AutoSerialNumber]
    on [dbo].[Orders]
    after insert 
    AS
    declare   @OrderId      int
    declare   @OrderNo   varchar(20)
    declare   @strDate  varchar(20)
    declare   @Numlen   int
    declare   @num      int
    declare   @strNum   varchar(20)  
    --获取当前日期
        set @strDate=substring(convert(varchar(10),getdate(),112),1,8) 
        set @Numlen = 4
        
        select   @OrderNo=max(OrderNo)  
        from  Orders   
        where   OrderNo   like  @strDate   +   '%'
        
        if @OrderNo is null    
            set @num=0  
        else
            set @num=cast(replace(@OrderNo,@strDate ,'') as int)
        
        set  @num = @num + 1 
        set  @strNum = cast(@num as varchar(10)) 
        
        while(len(@strNum)<@Numlen)
             set @strNum = '0' + @strNum
        set  @OrderNo=@strDate + @strNum
        
        select   @OrderId=OrderID   from   inserted 
        
        update Orders set OrderNo=@OrderNo where OrderID=@OrderId   
    可发参考下
      

  6.   

    如果可以的话 直接用NEWID()吧
      

  7.   

    楼上那位,你说的NEWID()是???可否详解??