SQL Server +在SQL中增加非主键字段

问题描述:

我有一个非主键票号。字段在我的SQL服务器数据库中格式是固定的,但包含不同的格式,例如Vou001..Vou002,TKO001 ... TKO002。对于每一个进入的记录,我都需要增加最后一个记录。所以Vou002之后的记录是Vou003,在TKO004之后是TKO005。如何在不使用某种记录计数方法的情况下执行此任务。由于表格将包含不同类型的TicketNo格式,我相信无法获取最后一个表格值并添加它。请提供建议。谢谢。SQL Server +在SQL中增加非主键字段

+0

我认为你需要使用触发器GOR这一点;否则我没有看到任何其他方式来做到这一点。 – Rahul

+0

您需要考虑的另一个问题(在解决这个问题后)是在签发'Vou999'后发生的情况。 –

每个代码在这里由1个部分:前缀(VouTKP等)和一个数字。

  • 可以经由序列仿真来产生数(或直接在SQL Server 2012)
  • 前缀可以被单独地存储或附加到序列写入表

使用任何前即使锁定提示,MAX类型或“滚动自己”对于2个并发/重叠调用也不是并发安全的。这些也会降低性能。

这DBA.SE问题显示了如何模仿在SQL Server中的序列:https://dba.stackexchange.com/questions/3307/emulate-a-tsql-sequence-via-a-stored-procedure

,我建议你在这里一看,这个问题是不完全一样的,但我想这是一个良好的开端:How do I add string with auto increment value in SQL Server?

+0

+1是的 - 这是真正实现它的唯一可靠方法 - 让数据库处理自动增量,并将其添加到前缀中。 –

+0

@marc_s:可以通过模拟每个前缀的序列来完成。 MS有一篇关于它的文章(请参阅dba.se链接) – gbn

+0

对于我而言,字段格式可以不同,它实际上从另一个具有“格式化”字段列的表中检索格式。 – k80sg