Мои вопросы
как увеличить значение столбца на 1.
Например, предположим, что столбец IDимеет значения 1,2,3,4, ..
Теперь, когда я обновляю эту таблицу, IDстолбец должен увеличиваться на 1,
Теперь IDстанет 2,3,4,5, ..
Мои вопросы
как увеличить значение столбца на 1.
Например, предположим, что столбец IDимеет значения 1,2,3,4, ..
Теперь, когда я обновляю эту таблицу, IDстолбец должен увеличиваться на 1,
Теперь IDстанет 2,3,4,5, ..
Ответы:
Чтобы добавить по одному к каждому значению в таблице ...
UPDATE myTable
SET ID = ID + 1
Чтобы создать новое значение, на одно большее, чем предыдущее максимальное (обычно), используйте столбец с IDENTITY.
ISNULLследующую инструкцию : UPDATE myTable SET ID = ISNULL(ID, 0) + 1(Взято из этого SO-ответа )
SET [Lic] = [Lic] + @dif. Обратите внимание, что переменная @dif может быть положительной, 0 или отрицательной
Если вы хотите, чтобы для каждой строки автоматически генерировался уникальный номер, это ИДЕНТИЧНОСТЬ согласно ответу Нила.
Если каждый раз при обновлении таблицы вы хотите увеличивать значения (т.е. они не являются ключами):
Update MyTable
Set IDColumn = IDColumn + 1
Where <whatever>
Попробуй это:
Update Emp set testCount = ISNULL(testCount, 0) + 1 where testId=1
В Oracle код немного сложнее.
Вам нужно будет создать поле с автоинкрементом с объектом последовательности (этот объект генерирует числовую последовательность).
Используйте следующий синтаксис CREATE SEQUENCE:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
Приведенный выше код создает объект последовательности с именем seq_person, который начинается с 1 и будет увеличиваться на 1. Он также будет кэшировать до 10 значений для повышения производительности. Параметр кеширования указывает, сколько значений последовательности будет храниться в памяти для более быстрого доступа.
Чтобы вставить новую запись в таблицу «Персоны», нам нужно будет использовать функцию nextval (эта функция извлекает следующее значение из последовательности seq_person):
INSERT INTO Persons (ID,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')
Приведенный выше оператор SQL вставит новую запись в таблицу «Персоны». Столбцу «ID» будет присвоен следующий номер из последовательности seq_person. Столбец «Имя» будет установлен на «Ларс», а столбец «Фамилия» будет установлен на «Монсен».
Вы можете попробовать следующее:
DECLARE @i INT
SET @i = @@ROWCOUNT + 1
INSERT INTO YourTable
(Identity Column)
VALUES
(@i + 1)