35 votos

cómo incrementar el valor de las columnas enteras en 1 en SQL

Mi pregunta es

cómo incrementar el valor de una columna en 1.

Por ejemplo, supongamos que una columna ID tiene valores 1,2,3,4, ..

Ahora, cuando actualice esta tabla, entonces ID La columna debe incrementarse en 1,

Ahora ID se convertirá en 2,3,4,5, ..

56voto

gbn Puntos 197263

Para añadir uno a cada valor de la tabla...

UPDATE myTable
SET ID = ID + 1

Para crear un nuevo valor, uno más que el anterior más alto (normalmente), utilice un columna con IDENTIDAD

19voto

kaj Puntos 2747

Si quieres tener un número único para cada fila generada automáticamente, esto es IDENTIDAD según la respuesta de Neil.

Si cada vez que actualizas la tabla quieres aumentar los valores (es decir, no son claves):

Update MyTable
Set IDColumn = IDColumn + 1
Where <whatever>

10voto

kishor soneji Puntos 171

Prueba esto:

Update Emp set testCount = ISNULL(testCount, 0) + 1 where testId=1

2voto

piyushj Puntos 1512

En Oracle el código es un poco más complicado.

Deberá crear un campo de autoincremento con el objeto secuencia (este objeto genera una secuencia de números).

Utilice la siguiente sintaxis de CREAR SECUENCIA:

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_persona, que comienza con 1 y se incrementará en 1. También almacenará en caché hasta 10 valores para el rendimiento. La opción de caché especifica cuántos valores de la 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 utilizar la función nextval (esta función recupera el siguiente valor de la secuencia seq_persona):

INSERT INTO Persons (ID,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')

La sentencia SQL anterior insertaría un nuevo registro en la tabla "Personas". A la columna "ID" se le asignaría el siguiente número de la secuencia seq_person. La columna "FirstName" se establecería como "Lars" y la columna "LastName" se establecería como "Monsen".

1voto

Tony Gallone Puntos 21

Puedes probar lo siguiente:

DECLARE @i INT
SET @i = @@ROWCOUNT + 1

INSERT INTO YourTable
        (Identity Column)    
VALUES    
        (@i + 1)

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X