【发布时间】:2012-08-22 13:53:57
【问题描述】:
使用 SQL Server 2008 R2 我想要一个表(已经在 2 列上具有主键),其中第三列是基于主键的两列之一的自动增量。
换句话说,我希望在向表中添加新记录时,有一个自动增量文件AIfield 自动增量如下:
PK1 PK2 AIfield
------------------
1 A 1
1 B 2
1 C 3
2 A 1
2 B1 2
2 B2 3
2 C1 4
其中 PK1 和 PK2 是主键的两个字段。
我不想使用明显的 MAX(Afield)+1 方法,因为我很可能必须为同一个 PK1 进行并发插入 - 这迟早会在 AIfield 中为同一个 PK1 创建重复项。
有什么建议吗?
【问题讨论】:
-
对每个人来说:问题是没有获得具有唯一编号的选择,使用值更新表的列是并发安全的。因此,仅 SELECT ROW_NUMBER() 的所有答案都不能回答问题
标签: sql-server-2008 auto-increment