【发布时间】:2017-06-02 00:53:29
【问题描述】:
我有一个包含 4 列 ID、c1、c2 和 LOT 的表。 ID 是主键。对于 c1 为 5 时的每条记录,我想为 LOT 自动生成一个数字,该数字对于 c2 的每个不同值都是从 1 开始的序列。
所以如果 c1 不是 5,LOT 保持为空。但是如果 c1 是 5,那么对于 c2=1 的每条记录,我想用从 1 开始的自动递增序列填充 LOT。 例如:
ID c1 c2 LOT
1 3
2 5 1 1
3 5 1 2
4 5 1 3
5 4
然后对不同的 c2 值执行相同的操作。所以如果 c2 是 2,再有一堆从 1 开始的自增手数:
ID c1 c2 LOT
6 3
7 5 2 1
8 5 1 4
9 5 2 2
10 5 2 3
我们使用的是 MSSQL 2014 Enterprise Ed。表分区是否有用,还是我需要为 C2 的每个不同值创建特殊表?
【问题讨论】:
-
抱歉,我在该链接中没有看到对触发器的引用。
-
对不起,我之前发布了错误的链接。请参阅stackoverflow.com/q/24335341/1072229 进行类似讨论。
-
谢谢。这看起来很相关。我还发现了这一点:侧边栏中的stackoverflow.com/questions/2205036/… 也使用触发器解决了这个问题,该触发器在下面解释了我的担忧(关于唯一性)
标签: sql-server conditional auto-increment