如何更新表的一列中的行,并在Sybase ASE中使用减号递增

时间:2015-04-02 09:45:53

标签: sql sybase-ase

我必须在表的一列中更新大约40行,并在sybase ASE中以负数-1,-2,-3,-4等增加数字。任何人都可以告诉你怎么做

1 个答案:

答案 0 :(得分:0)

Raj,ASE中的标识值不能设置为按需要维护一系列负值。这样就消除了最简单的方法。

让我们假设您的表格如下:

CREATE TABLE cars (
  id     not null,
  name   varchar(20),
  serial int null
)

其中serial是可能包含NULL值的列。

您可以在表上创建一个触发器,以便在它为空时更新serial

或者,如果您尝试更新此表中的现有值,则可以运行以下代码40次:

UPDATE  cars
SET     serial = -(SELECT COUNT(*) FROM cars WHERE serial IS NULL)
WHERE   id = (SELECT MAX(id) FROM cars WHERE serial IS NULL)

当然,对于40行手动更新值听起来很有吸引力!