Sql server 如何在SQL中自动生成数字

Sql server 如何在SQL中自动生成数字,sql-server,Sql Server,我正在制作一个库存软件。在这种情况下,我需要生成一个自动生成的项目代码,以便用户可以使用该代码来选择该项目。我想知道怎样做这样的柱子,最好的方法是什么 我需要从“1000”开始输入项目代码 例如,我的表中有以下列 ItemID int ItemCode ItemName 如果GUID或Autoincrement列不足以满足您的业务需要,则必须创建一个函数来自动生成自定义代码 请查看以下内容: 请尝试以下方法: CREATE TABLE [dbo].[TargetTableName](

我正在制作一个库存软件。在这种情况下,我需要生成一个自动生成的项目代码,以便用户可以使用该代码来选择该项目。我想知道怎样做这样的柱子,最好的方法是什么

我需要从“1000”开始输入项目代码

例如,我的表中有以下列

ItemID int
ItemCode 
ItemName 

如果GUID或Autoincrement列不足以满足您的业务需要,则必须创建一个函数来自动生成自定义代码

请查看以下内容:


请尝试以下方法:

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
    )
)
您可以使用列并对其种子设定为从1000开始

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

Create procedure[dbo].[randomnum]--exec[randomnum]'1000','9999','
(-设置最小值和最大值
@闵比金,
@马克斯·比金,
@nvarrs bigint输出
)  
宣布
@nvarrc bigint,
@num bigint
设置为@nvarrc=@max
设置@nvarrs=@min-1
而@nvarrs<@min
开始
设置@nvarrs=(上限(rand()*@nvarrc))
选择@nvarrs RandomNumber
终点

我在某个地方看到了这个建议,我正在使用它:非常酷!

类似问题的可能重复
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