如何在SQL中获取自动生成数字

时间:2011-12-14 10:46:22

标签: sql-server

我正在制作库存软件。因为我需要制作一个自动生成的项目代码,以便用户可以使用该代码来选择该项目。我想知道如何制作这样的柱子和最好的方法。

我需要从“1000”

启动项目代码

例如,我的表格中有以下列

ItemID int
ItemCode 
ItemName 

5 个答案:

答案 0 :(得分:1)

请您尝试以下方式:

CREATE TABLE [dbo].[TargetTableName](
    [ItemID ] [int] IDENTITY(1000,1) NOT NULL,
    [ItemCode] [nvarchar](50) NOT NULL,
    [ItemName] [nvarchar](50) NOT NULL
    CONSTRAINT [PK_TargetTableName] PRIMARY KEY CLUSTERED 
    (
        [ItemID ] ASC
    )
)

答案 1 :(得分:0)

如果GUID或自动增量列对您的企业来说不够,您必须创建一个功能来自动生成您的自定义代码

看看下面的内容:

http://www.sqlteam.com/article/custom-auto-generated-sequences-with-sql-server

答案 2 :(得分:0)

您可以使用Identity列并将其播种以从1000开始。

然而,您可能希望考虑编写一些业务逻辑来生成有意义的代码,我总是认为对于对您的用户有意义的数据项使用Identity列略显不好。它通常用于生成无意义的表主键。有可能(尽管不太可能)强制SQL Server为Identity列重新生成相同的值(例如,如果表被截断)。

答案 3 :(得分:0)

Create procedure [dbo].[randomnum]     --exec  [randomnum] '1000','9999',''
(                                     --Set Minimun and Maximum value
@min bigint,               
@max bigint,  
@nvarrs bigint output  

)  

AS Declare  
@nvarrc bigint,  
@num bigint   

set @nvarrc = @max  
set @nvarrs =@min - 1  

while @nvarrs < @min  
Begin  
set @nvarrs = (ceiling(rand() * @nvarrc))  
  Select @nvarrs RandomNumber
End  

enter image description here

答案 4 :(得分:0)

我在某处看到了此建议,我正在使用它:太酷了! http://generatedata.com/