相关疑难解决方法(0)

类似于身份的列,但基于分组依据条件

在我的SQL Server 2012数据库中,我正在创建“任务”表,该表将具有由三个字段组成的复合主键:

Issue_ID [int] NOT NULL,
Issue_Sub_ID [int] NOT NULL,
Task_ID [int] NOT NULL
Run Code Online (Sandbox Code Playgroud)

Issue_ID并且Issue_Sub_ID是其他表的外键。在我创建的表中,每个Issue_ID/ Issue_Sub_ID组合可能有许多任务。

我想做的是为该Task_ID列建立一个默认值,这与我使用过的值类似IDENTITY(1,1),但是它将基于Issue_ID/ Issue_Sub_ID组自动增加。例如,Task_ID给定提供的Issue_ID/ Issue_Sub_ID值,结果将如下所示:

Issue_ID     Issue_Sub_ID     Task_ID
========     ============     =======
12345             1              1
12345             1              2
12345             1              3
12345             2              1
12345             2              2
67890             2              1
67890             2              2
67890             2              3
Run Code Online (Sandbox Code Playgroud)

我熟悉ROW_NUMBER() OVER(PARTITION BY Issue_ID, Issue_Sub_ID ORDER BY Issue_ID, Issue_Sub_ID)可能的解决方案,但是,由于我希望此列成为表的复合主键的一部分,所以我认为这行不通。

提前谢谢大家。

sql sql-server identity primary-key

4
推荐指数
1
解决办法
717
查看次数

标签 统计

identity ×1

primary-key ×1

sql ×1

sql-server ×1