首页 > 解决方案 > 如何每年生成自定义唯一密钥

问题描述

我想生成一个自定义顺序键,应该在每个新的财政年度重新启动。我已经提供了带有提到的列的示例FinancialYear数据CustomKey

注意:我想确保在两次或多次尝试同时添加行期间不会获得相同的值。

示例数据:

ID    |   FinancialYear   |  CustomKey
1     |   2019            |  1
2     |   2019            |  2
3     |   2020            |  1

我对使用 Linq to Entities 或 SQL Server 的任何解决方案持开放态度。

我已经有了一个带触发器的解决方案,所以请不要与他们分享任何解决方案。

标签: sqlsql-serverconcurrencylinq-to-entities

解决方案


使用 max CustomKey + 1 怎么样?

DECLARE @NextCustomKey AS INT = 0;

SELECT @NextCustomKey = ISNULL(MAX(CustomKey),0) + 1
FROM [TableName]
WHERE FinancialYear = 2019;

INSERT INTO [TableName] (
FinancialYear
,CustomKey
)
VALUES (
2019
,@NextCustomKey
);

推荐阅读