【问题标题】:How to continue a sequence when inserting插入时如何继续序列
【发布时间】:2020-02-22 01:19:32
【问题描述】:

我试图用下面的例子来简化我的问题:

我有一个包含以下数据的表格:

Marker     Name            Location
1          Eric Benson     Mixed
2          John Smith      Rural
3          A David         Rural
4          B John          Mixed

我想插入表格:

Name            Location
Andy Jones      Mixed
Ian Davies      Rural

如何继续标记列中的序列以结束:

Marker     Name            Location
1          Eric Benson     Mixed
2          John Smith      Rural
3          A David         Rural
4          B John          Mixed
5          Andy Jones      Mixed
6          Ian Davies      Rural

【问题讨论】:

  • 您要解决哪些identity columnsequence 无法解决的问题?有充分的理由将功能内置到数据库中,并且尝试重新发明它是一个坏主意,例如处理事务回滚。

标签: sql tsql insert


【解决方案1】:

如果您使用存储过程进行此操作,您可以在插入之前询问标记的最大值。 (仅当标记列不是 identity 时才有效)

像这样:

declare @max_marker int
set @max_marker=isnull((select max(marker) from table),0)
--Insert comes here
Insert into table (Marker,Name,Location) Values(@max_marker+1,'Andy Jones','Mixed')

【讨论】:

    猜你喜欢
    • 2012-10-19
    • 2020-04-30
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 2011-03-01
    • 1970-01-01
    相关资源
    最近更新 更多