sql - 如何每年生成自定义唯一密钥
问题描述
我想生成一个自定义顺序键,应该在每个新的财政年度重新启动。我已经提供了带有提到的列的示例FinancialYear
数据CustomKey
。
注意:我想确保在两次或多次尝试同时添加行期间不会获得相同的值。
示例数据:
ID | FinancialYear | CustomKey
1 | 2019 | 1
2 | 2019 | 2
3 | 2020 | 1
我对使用 Linq to Entities 或 SQL Server 的任何解决方案持开放态度。
我已经有了一个带触发器的解决方案,所以请不要与他们分享任何解决方案。
解决方案
使用 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
);
推荐阅读
- amazon-web-services - 在无法访问 Internet 的服务器上从 CLI 访问 S3 PrivateLink
- google-apps-script - 使 getThreads() 应用脚本调用计数超过 500
- php - 如何使用 php 和 pdo 更新散列密码
- windows - 如何解决在线程中捕获图像的 OpenCV 错误?
- javascript - 变量更新但恢复到旧值
- angular - 离开应用程序时如何使用 CanDeactivate 守卫(非组件)
- ios - iOS - 核心数据 - 创建一个空的 NSManagedObjectContext
- java - 从 Java 对象到 JsonObject,嵌套类的问题
- jenkins-pipeline - 在 Jenkins 脚本化管道中,从不是由管道直接触发的作业中获取结果
- python - 多重继承中的python'super' - 意外的代码输出