就相当于一个自增的整数,用来识别唯一的记录用的。也就是说你每插入一条记录,流水号就增加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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)