Mi pregunta es
cómo incrementar el valor de una columna en 1.
Por ejemplo, supongamos que una columna IDtiene valores 1,2,3,4, ..
Ahora, cuando actualizo esta tabla, la IDcolumna debería incrementarse en 1,
Ahora IDse convertirá en 2,3,4,5, ..
Mi pregunta es
cómo incrementar el valor de una columna en 1.
Por ejemplo, supongamos que una columna IDtiene valores 1,2,3,4, ..
Ahora, cuando actualizo esta tabla, la IDcolumna debería incrementarse en 1,
Ahora IDse convertirá en 2,3,4,5, ..
Respuestas:
Para agregar uno a cada valor en la tabla ...
UPDATE myTable
SET ID = ID + 1
Para crear un nuevo valor, uno más que el anterior más alto (generalmente), use una columna con IDENTIDAD
ISNULLdeclaración como esta: UPDATE myTable SET ID = ISNULL(ID, 0) + 1(Tomado de esta respuesta SO )
SET [Lic] = [Lic] + @dif. Tenga en cuenta que la variable @dif puede ser positiva, 0 o negativa
Prueba esto:
Update Emp set testCount = ISNULL(testCount, 0) + 1 where testId=1
Puede usar IDENTITYcuál hará esto por usted.
CREATE TABLE [dbo].[MyTable](
[MyTableID] [int] IDENTITY(1,1) NOT NULL,
-- Other columns
)
Cuando inserte su primer registro, obtendrá un valor Idde 1.
En Oracle, el código es un poco más complicado.
Deberá crear un campo de incremento automático con el objeto de secuencia (este objeto genera una secuencia numérica).
Utilice la siguiente sintaxis CREATE SEQUENCE:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
El código anterior crea un objeto de secuencia llamado seq_person, que comienza con 1 y aumentará en 1. También almacenará en caché hasta 10 valores para el rendimiento. La opción de caché especifica cuántos valores de secuencia se almacenarán en la memoria para un acceso más rápido.
Para insertar un nuevo registro en la tabla "Personas", tendremos que usar la función nextval (esta función recupera el siguiente valor de la secuencia seq_person):
INSERT INTO Persons (ID,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')
La instrucción SQL anterior insertaría un nuevo registro en la tabla "Personas". A la columna "ID" se le asignará el siguiente número de la secuencia seq_person. La columna "Nombre" se establecería en "Lars" y la columna "Apellido" se establecería en "Monsen".
Puedes probar lo siguiente:
DECLARE @i INT
SET @i = @@ROWCOUNT + 1
INSERT INTO YourTable
(Identity Column)
VALUES
(@i + 1)