我有一个非主键TicketNo。我的SQL服务器数据库中的字段,其格式是固定的但包含不同的格式,例如Vou001..Vou002,TKO001 ... TKO002。对于每个进入的记录,我需要增加最后一个。因此,在TKO004为TKO005之后,Vou002之后的记录为Vou003。如何在不使用某种记录计数方法的情况下执行此任务。由于该表将由不同种类的TicketNo格式组成,因此我认为无法获取最后一个表值并添加它。请善意的建议。感谢。
答案 0 :(得分:2)
此处的每个代码由1部分组成:前缀(Vou
,TKP
等)和数字。
即使使用锁定提示,使用任何类型的MAX或“自己滚动”对于2个并发/重叠调用也不会是并发安全的。这些也会降低性能。
此DBA.SE问题显示如何在SQL Server中模拟序列:https://dba.stackexchange.com/questions/3307/emulate-a-tsql-sequence-via-a-stored-procedure
答案 1 :(得分:1)
我建议你看看这里,问题不完全相同,但我想这是一个好的开始:How do I add string with auto increment value in SQL Server?