Мои вопросы
как увеличить значение столбца на 1.
Например, предположим, что столбец ID
имеет значения 1,2,3,4, ..
Теперь, когда я обновляю эту таблицу, ID
столбец должен увеличиваться на 1,
Теперь ID
станет 2,3,4,5, ..
sql-server-2005
Вариндер
источник
источник
Ответы:
Чтобы добавить по одному к каждому значению в таблице ...
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
источник
Вы можете использовать то,
IDENTITY
что сделает это за вас.CREATE TABLE [dbo].[MyTable]( [MyTableID] [int] IDENTITY(1,1) NOT NULL, -- Other columns )
Когда вы вставите свою первую запись, вы получите
Id
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)
источник