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