【问题标题】:Create a stored procedure which will generate alphanumeric with auto increment [closed]创建一个存储过程,它将生成具有自动增量的字母数字 [关闭]
【发布时间】:2014-07-07 09:18:23
【问题描述】:

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

例如:

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

等等。

【问题讨论】:

  • 哪个版本?使用较新的 noes 使用微不足道的序列(从序列中获取数字,添加前缀,完成)。
  • 你能把代码贴出来吗?@TomTom
  • 要考虑的 2 个选项:将“alpha”部分存储在字符串中,并对数字使用正常的自动增量,第二,将整个值存储为数字,但报告为字母数字。
  • MySQL 不是 SQL Server。你问的是哪个?

标签: sql-server auto-increment


【解决方案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

【讨论】:

  • 请告诉如何运行和测试这个功能......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-24
  • 2013-02-11
  • 2018-02-14
  • 2011-02-22
  • 2012-05-23
  • 1970-01-01
  • 2012-03-19
相关资源
最近更新 更多