【问题标题】:Auto increment/ Identity possible to detect values itself?自动增量/身份可以检测值本身吗?
【发布时间】:2016-01-02 23:34:36
【问题描述】:

我有这张表ProcessList,其中TransactionID 的值应该在添加一行时自动递增。

我可以将数据从 Excel 文件导入此表。是否可以对其进行编码,以便自动检测开始增量的值?或者至少不使用硬代码,因为 Excel 可能包含我不知道的任意数量的行。

我不确定 SQL 中的 auto_increment 或 identity 函数是否更适合我打算做的事情?

【问题讨论】:

  • Sql server 自己会为你做这件事。如果上一个导入以TransactionID = 555 结束,下一个导入将从556 开始分配。
  • 您好,如果我的回答对您有帮助,请投票和/或标记为已接受,谢谢!

标签: sql sql-server excel increment identity


【解决方案1】:

您必须决定的第一件事是,您的 EXCEL 数据中的现有 ID 值是否会被丢弃。

如果是:只需在插入时排除此列。数据库会自行添加运行ID。

如果否:您可以使用语句插入 ID 值

SET IDENTITY_INSERT ProcessList ON;

但您必须确定,不会重新插入现有的 ID 值。

如果您想获得最高 ID 并自己执行插入逻辑,您可以使用

SELECT MAX(TransactionID) + 1 FROM ProcessList

【讨论】:

    【解决方案2】:

    使用 Identity(x,y),您可以说出增量从哪里开始 (y)。你是这个意思吗?

    【讨论】:

      猜你喜欢
      • 2013-05-17
      • 1970-01-01
      • 1970-01-01
      • 2012-03-11
      • 2021-01-31
      • 2012-12-09
      • 2017-04-19
      • 2017-10-31
      • 2013-08-31
      相关资源
      最近更新 更多