【问题标题】:Setting an auto increment value starting from a certain value T-SQL设置从某个值开始的自动增量值 T-SQL
【发布时间】:2018-12-07 02:31:43
【问题描述】:

我的表中有一个空列 WHID。我需要使用自动值更新此列,其中第一个值将等于 17

所以,我期待结果:

WHID:
17
18
19
20
21
22
....
etc.

我的代码是:

DECLARE @IncrementValue int
SET @IncrementValue = 17

UPDATE ClientEpisode 
SET [WHID] = @IncrementValue + 1 

我在所有行中得到 18 的结果(这不是我需要的)。

我在[WHID] = .... 中写了什么或者如何修改我的代码以获得我的预期结果?

【问题讨论】:

  • 没有where 子句的SQL update 语句将更新表中的每条记录。您需要一个 while 循环来使用新值一次更新记录 1。

标签: sql-server tsql auto-increment


【解决方案1】:

您可以使用identity 约束,因为您将表构建为

CREATE TABLE MyTable (WHID INT IDENTITY(17,1))

这里您需要删除现有列并使用identity 约束创建新列

Alter tableName Drop Column WHID

然后创建具有新约束的列

Alter tableName Add WHID Int Identity(17, 1) Go

【讨论】:

  • @Osama Abu Baker 我的表有许多其他字段并且已经创建我需要更新现有表中的新字段....
  • 如果您不关心哪些行获取哪些值,您可以删除该列并将其添加为标识alter TABLE MyTable drop column WHIDalter TABLE MyTable add WHID INT IDENTITY(17,1)
  • @Hell-1931 请注意,身份列可能会留下空白,例如如果 insert 被回滚。删除行也会留下空白。
猜你喜欢
  • 2012-05-16
  • 1970-01-01
  • 2011-11-25
  • 1970-01-01
  • 2013-04-20
  • 2017-02-19
  • 2017-05-20
  • 2013-01-06
  • 2016-02-02
相关资源
最近更新 更多