在我的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)可能的解决方案,但是,由于我希望此列成为表的复合主键的一部分,所以我认为这行不通。
提前谢谢大家。