用于生成自动递增字符串主键的存储过程

本文关键字:字符串 存储过程 用于 | 更新日期: 2023-09-27 18:05:52

我刚开始使用存储过程,我想创建一个包含常量部分和自动增量部分的字符串主键。例如"REP101, REP102" REP103…"。

我发现的其他方法有两个列,一个自动增量int列和一个以REP为前缀的主键列。但是我认为使用存储过程会更有效率。

我正在寻找一种在表中检索最后一行并使用存储过程返回其键的方法,以便我可以在c#代码中使用它。

用于生成自动递增字符串主键的存储过程

在我看来,如果每个主键值都将以'REP'作为前缀,那么您实际上根本不需要前缀,您可以简单地使用Identity列作为主键。这样就完全不需要存储过程了,而且效率会高得多。

存储过程会更有效。您将使用Sequence来创建数字部分,然后将其与前缀连接返回。

约:

CREATE PROCEDURE GetNextKey
  @key VARCHAR(50) OUT
AS
BEGIN
   SET @key = 'REP' + SELECT NEXT VALUE FOR keys_seq;
END;
但是,为什么要在主键中使用前缀呢?仔细看看你的设计,并认为你真的需要做出区分。您可以简单地使用自动增量ID作为主键,并在必要时在显示点添加前缀。