数据库的流水号是什么??

数据库的流水号是什么??,第1张

数据库的

流水号

就相当于一个自增的整数,用来识别唯一的记录用的。也就是说你每插入一条记录,流水号就增加1.

一般是

日期+流水号

形成一个唯一的id。

你要什么样格式的?

给你个生成流水号的存储过程看看,这个是字母加日期的流水号,三个输入参数。

USE [WXLH_MES]

GO

/****** Object: StoredProcedure [dbo].[P_Get_SYS_SERAIL]Script Date: 09/22/2015 14:03:25 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

-- =============================================

-- Author: evan

-- Create date: <Create Date,,>

-- Description: <Description,,>

-- =============================================

ALTER PROCEDURE [dbo].[P_Get_SYS_SERAIL]

-- 序列号类型头

@TITLETYPE NVARCHAR(10) ,

-- 自增长长度

@LENGTH INT ,

-- 获得新的序列号

@RESULT NVARCHAR(100) OUT

AS

BEGIN

DECLARE @TYPE NVARCHAR(10)

DECLARE @LEN INT

DECLARE @PREFIX NVARCHAR(20)

SET @TYPE = @TITLETYPE

SET @LEN = @LENGTH

--SET @PREFIX = CONVERT(NVARCHAR(10), GETDATE(), 112)

SET @PREFIX = SUBSTRING(CONVERT(NVARCHAR(10), GETDATE(), 112),3,LEN(CONVERT(NVARCHAR(10), GETDATE(), 112))-2)

IF NOT EXISTS ( SELECT *

FROMdbo.tb_serials

WHERE serial_type = @TYPE )

BEGIN

INSERT INTO dbo.tb_serials

( serial_type ,

next_value ,

prefix ,

sn_length

)

VALUES ( @TYPE , -- serial_type - varchar(50)

1 , -- next_value - bigint

@PREFIX , -- prefix - nvarchar(30)

@LEN -- sn_length - int

)

END

IF NOT EXISTS ( SELECT *

FROMdbo.tb_serials

WHERE serial_type = @TYPE

AND prefix = @PREFIX )

BEGIN

UPDATE dbo.tb_serials

SET prefix = @PREFIX ,

next_value = 1

WHERE serial_type = @TYPE

END

DECLARE @strResult NVARCHAR(40)

SELECT @strResult = ( serial_type + prefix + REPLICATE('0',

@LEN

- LEN(next_value))

+ CAST(next_value AS NVARCHAR) )

FROMtb_serials

WHERE serial_type = @TYPE

AND prefix = @PREFIX

UPDATE dbo.tb_serials

SET next_value = 1 + next_value

WHERE serial_type = @TYPE

set @RESULT= @strResult

END


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10800029.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存