【发布时间】:2018-06-28 10:23:48
【问题描述】:
假设我有 A、B 和 C 列。其中 A、B 和 C 构成主键(复合键)。我想要发生的是,每当我在 A/B 上进行插入时,C 列应该增加一,仅针对该特定组合。
本质上,C 将跟踪 A/B 组合的版本。总之,所有的 enries 都应该是独一无二的。
这就是我希望我的表格在插入后的样子:
- [A]_ [B]_ [C]_
- 美食吧 1
- 美食吧 2
- 酒吧巴兹 1
- 美食吧 3
- 酒吧巴兹 2
- Foo Foo 1
我基本上想要一个基于 A/B 组的 1 种子。
知道如何实现这一目标吗?我想我需要一个排序触发器,然后计算 A/B 列当前 C 的最大值?
【问题讨论】:
-
是的,这样的触发器可能会有所帮助。
-
不要尝试在数据操作(INSERT /DELETE /UPDATE)时强制连续编号。只需让 sql-server 对其进行自动编号并在 SELECT 处使用 ROW_NUMBER() OVER()。