基于另外两列的不同值自动递增列

时间:2014-01-07 17:56:44

标签: sql-server-2008

当我插入表时,我有两列重要的列,外键列和该外键的子集。例如,我可以使用以下2432的密钥,子集为1,2,3,4

2432   1   1
2432   1   2
2432   1   3
2432   1   4
2432   1   5
2432   1   6
2432   2   1
2432   2   2
2432   2   3
2432   3   1
2432   3   2
2432   3   3
2432   3   4
2432   3   5
2432   4   1
2432   4   2

每个键的子集数量不同,我只需要一种方法为每个不同的键和子集创建一个增量值,这将导致上面的第三列。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

您可以使用ROW_NUMBER

INSERT INTO MyTable (C1, C2, C3)
SELECT FKCol, FKSubsetCol,
    ROW_NUMBER() OVER (PARTITION BY FKCol, FKSubsetCol ORDER BY FKCol)