创建一个存储过程,该过程将生成具有自动增量的字母数字

时间:2014-07-07 09:18:23

标签: sql-server auto-increment

我需要显示一个带有系统生成值的标签字段,即字母数字值。所以 是否可以创建一个存储过程,该过程将返回字母数字值,每次执行时都会返回自动增量值。 其中alpha值将像“ABC”一样恒定,只会增加数值。

例如:

1st time => ABC12345
2nd time => ABC12346 

等等。

1 个答案:

答案 0 :(得分:1)

创建FUNCTION而不是Stored Procedure

CREATE FUNCTION USF_GenerateNewID() RETURNS VARCHAR(10)
AS
BEGIN

    DECLARE @Prefix VARCHAR(3) = 'ABC'
    DECLARE @ID VARCHAR(10)
    SET @ID = (SELECT TOP 1 ID FROM <TABLE> ORDER BY ID DESC)

    SET @ID = @Prefix + CAST((CAST(REPLACE(@ID,@Prefix,'') AS INT) + 1) AS VARCHAR(10))

    RETURN @ID
END