写一个SQL的insert语句(ID,name),ID号由0自动+1的顺序增长(不要在数据库里面设置,要写程序)。

解决方案 »

  1.   

    那用存储过程了:
    CREATE PROCEDURE InsertPro(@name varchar(50))
    as 
    begin
     declare @tempid int
     select @tempid=max(id) from your_table
     insert into your_table(id,name) values(@tempid+1,@name)
     return @tempid+1
    end
    但这方法不能够保证多人访问时的用户ID唯一性,除非你在程序中插入数据时锁定表,但这样一来你的程序就会限制了用户的并发操作.
      

  2.   

    orcale 中的序列  sql server中的种子 哈哈 都很好用的 为什么不用的呢  晕
      

  3.   

    我想写在VB.Net程序中,该怎么写呀
      

  4.   

    我想写在VB.Net程序中,该怎么写呀
      

  5.   

    这个项目里有
    http://218.27.204.17/aspnet/a_user.aspx
      

  6.   

    设定一张表..里面存储着每张表的一个maxId
    这样要新增的时候,获取max,然后+1..然后另外张表获取max+1的值.
    这样增加..
    绝对比数据库自增好..至于原因..我忘记了.
    我们公司是这样设计的
      

  7.   

    就是专门做一个表用来存放maxId.这样就不用害怕并发的问题了吧..
    用存储过程写.
    -----------------------------------------------------------------------
    -- 版    权: Copyright (C) 1999-2004 BEYONDINFO All rights reserved.
    --
    -- 创建时间: 2004-6-1
    --
    -- 作    者: MachineCat
    --
    -- 摘    要: 获取最大唯一标识存储过程
    -----------------------------------------------------------------------
    CREATE PROCEDURE Sys_Dictionary_GetMaxIDPR
    (
    ---- 输入参数 ----
    @DataTableCode VARCHAR(50),
    @MaxIDType VARCHAR(50),

    ---- 输出参数 ----
    @MaxID INT = 1 OUTPUT,
    @MaxSortIndexID         INT = 1     OUTPUT,
    @ReturnValue INT = 0 OUTPUT
    )
    AS

    ---- 关闭记数器 ----
    SET NOCOUNT ON
    ---- 初始化 ----
    Set @MaxID = 1
    Set @MaxSortIndexID = 1
    ---- 获取最大唯一标识 ----
    IF @MaxIDType = 'MaxID'
    BEGIN
    UPDATE 
    Sys_DataTableDictTB 
    SET 
    MaxID = MaxID + 1,
    @MaxID = MaxID + 1 
    WHERE 
    DataTableCode = @DataTableCode
    END
    ---- 获取最大排序号 ----
    ELSE IF @MaxIDType = 'MaxSortIndexID'
    BEGIN
    UPDATE 
    Sys_DataTableDictTB 
    SET 
    MaxSortIndexID = MaxSortIndexID + 1,
    @MaxSortIndexID = MaxSortIndexID +1 
    WHERE 
    DataTableCode = @DataTableCode
    END
    ---- 获取最大唯一标识和最大排序号 ----
    ELSE IF @MaxIDType = 'AllMaxID'
    BEGIN
    UPDATE 
    Sys_DataTableDictTB 
    SET 
    MaxID = MaxID + 1,
    @MaxID = MaxID + 1,
    MaxSortIndexID = MaxSortIndexID + 1,
    @MaxSortIndexID = MaxSortIndexID +1 
    WHERE 
    DataTableCode = @DataTableCode
    END
    ---- 恢复记数器 ----
    SET NOCOUNT OFF

    ---- 返回 ----
    RETURN
      

  8.   

    在其他存储调用
     EXEC dbo.Sys_Dictionary_GetMaxIDPR 'EPaper_CommendTB','MaxID',@CommendID OUTPUT
      

  9.   

    方法很多:)不过我觉得这样没什么意义,现在数据库mssql有自增长ID,oracle有序列
      

  10.   

    我不想用存储过程,我只想知道在vb.net中写SQL语句怎么写???
      

  11.   

    此问题这个项目里有
    http://218.27.204.17/aspnet/a_user.aspx
      

  12.   

    我不想用存储过程,我只想知道在vb.net中写SQL语句怎么写???
    大家帮帮忙!!!
      

  13.   

    我不想用存储过程,我只想知道在vb.net中写SQL语句怎么写???
      

  14.   

    我不想用存储过程,我只想知道在vb.net中写SQL语句怎么写???
    大家帮帮忙!!!
    (写一个SQL的insert语句(ID,name),ID号由0自动+1的顺序增长(不要在数据库里面设置,要写程序)。)
      

  15.   

    insert into abc(ID,Name) values(DBO.GetID(),'ME')
      

  16.   

    我不想用存储过程,我只想知道在vb.net中写SQL语句怎么写???
    大家帮帮忙!!!
    (写一个SQL的insert语句(ID,name),ID号由0自动+1的顺序增长(不要在数据库里面设置,要写程序)。)
      

  17.   

    我不想用存储过程,我只想知道在vb.net中写SQL语句怎么写???
    大家帮帮忙!!!
    (写一个SQL的insert语句(ID,name),ID号由0自动+1的顺序增长(不要在数据库里面设置,要写程序)。)
      

  18.   

    我不想用存储过程,我只想知道在vb.net中写SQL语句怎么写???
    大家帮帮忙!!!
    (写一个SQL的insert语句(ID,name),ID号由0自动+1的顺序增长(不要在数据库里面设置,要写程序)。)