【发布时间】:2017-04-19 14:22:07
【问题描述】:
我需要增加一个名为 Sequencia 的列,每个 Sequencia 依赖于 CedenteID、Ano 和 Periodo 来增加。这是我使用的:
select @Seq = isnull(Sequencia, 0) + 1
from T041_NossoNumero
where CedenteID = @CedenteID
and Ano = @Ano
and Periodo = @Periodo
update T041_NossoNumero
set Sequencia = @Seq
where CedenteID = @CedenteID
and Ano = @Ano
and Periodo = @Periodo
但是,如果我同时执行这段代码,我可以拥有重复的 Sequencia。我想建议我应该做什么而不是使用更新 +1
我有什么:
- CedenteID(PK/FK)
- Ano(PK)
- 周期(PK)
|CedenteID|Ano |Periodo|Sequencia|
| | | | |
|392 |2016 |1 |37382 |
|392 |2016 |2 |17351 |
我需要什么,如果:
- CedenteID = 392
- Ano = 2016
- 周期 = 2
|CedenteID|Ano |Periodo|Sequencia|
| | | | |
|392 |2016| 1| 37382|
|392 |2016| 2| 17352|
【问题讨论】:
-
那张桌子上有标识列吗?
-
那么,两个调用同时提交,只需要更新一次(+1,而不是+1+1)?如果是这样,您如何识别“同时”与“顺序”调用?
标签: sql sql-server increment