Minhas perguntas são
como incrementar o valor de uma coluna em 1.
Por exemplo, suponha que uma coluna IDtenha valores 1,2,3,4, ..
Agora, quando eu atualizo esta tabela, a IDcoluna deve aumentar em 1,
Agora IDse tornará 2,3,4,5, ..
Minhas perguntas são
como incrementar o valor de uma coluna em 1.
Por exemplo, suponha que uma coluna IDtenha valores 1,2,3,4, ..
Agora, quando eu atualizo esta tabela, a IDcoluna deve aumentar em 1,
Agora IDse tornará 2,3,4,5, ..
Respostas:
Para adicionar um a cada valor na tabela ...
UPDATE myTable
SET ID = ID + 1
Para criar um novo valor, mais um do que o anterior mais alto (normalmente), use uma coluna com IDENTITY
ISNULLdeclaração como esta: UPDATE myTable SET ID = ISNULL(ID, 0) + 1(Retirado desta resposta do SO )
SET [Lic] = [Lic] + @dif. Observe que a variável @dif pode ser positiva, 0 ou negativa
Experimente isto:
Update Emp set testCount = ISNULL(testCount, 0) + 1 where testId=1
Você pode usar o IDENTITYque fará isso por você.
CREATE TABLE [dbo].[MyTable](
[MyTableID] [int] IDENTITY(1,1) NOT NULL,
-- Other columns
)
Ao inserir seu primeiro registro, você obterá um Idde 1.
No Oracle, o código é um pouco mais complicado.
Você terá que criar um campo de incremento automático com o objeto de sequência (este objeto gera uma sequência numérica).
Use a seguinte sintaxe CREATE SEQUENCE:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
O código acima cria um objeto de sequência chamado seq_person, que começa com 1 e aumentará em 1. Ele também armazenará em cache até 10 valores para desempenho. A opção de cache especifica quantos valores de sequência serão armazenados na memória para acesso mais rápido.
Para inserir um novo registro na tabela "Pessoas", teremos que usar a função nextval (esta função recupera o próximo valor da sequência seq_person):
INSERT INTO Persons (ID,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')
A instrução SQL acima iria inserir um novo registro na tabela "Pessoas". A coluna "ID" seria atribuída ao próximo número da sequência seq_person. A coluna "FirstName" seria definida como "Lars" e a coluna "LastName" seria definida como "Monsen".
Você pode tentar o seguinte:
DECLARE @i INT
SET @i = @@ROWCOUNT + 1
INSERT INTO YourTable
(Identity Column)
VALUES
(@i + 1)