我将两列列为主要列。
一列是INT
,另一列是nvarchar(200)
。
现在实际上允许这样的事情:
Int Varchar
1 FIRSTENTRY
1 SECONDENTRY
2 FIRSTENTRY
2 SECONDENTRY
我使INT列成为一个增量为1的标识。
问题是: 当我插入新列时,它总是向上计数。假设我插入了这样的列:
FIRSTENTRY
SECONDENTRY
FIRSTENTRY
SECONDENTRY
表格看起来像这样:
1 - FIRSTENTRY
2 - SECONDENTRY
3 - FIRSTENTRY
4 - SECONDENTRY
我希望它是这样的:
1 - FIRSTENTRY
1 - SECONDENTRY
2 - FIRSTENTRY
2 - SECONDENTRY
有没有一种标准方法可以做到这一点?
答案 0 :(得分:1)
你不能:IDENTITY
总是递增,作为复合键的一部分不起作用。
或者换句话说,没有'只有在需要避免重复的复合键时才进行自动增量。
您需要使用自定义书写逻辑自行生成重复/重复值。
<强>更新强>
您可能还需要考虑将两者分开:具有IDENTITY主键的EntryGroup
表和具有Entry
列的EntryGroupID
表,该列是{{的外键。 1}}表。迟早你可能会发现EntityGroups实际上是你系统中的相关实体,如果你在这么早的阶段将它们分开,你会很高兴。