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, ..
sql-server-2005
Varinder
fuente
fuente

Respuestas:
Para agregar uno a cada valor en la tabla ...
UPDATE myTable SET ID = ID + 1Para crear un nuevo valor, uno más que el anterior más alto (generalmente), use una columna con IDENTIDAD
fuente
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 negativaSi desea tener un número único para cada fila generada automáticamente, esta es la IDENTIDAD según la respuesta de Neil.
Si cada vez que actualiza la tabla desea aumentar los valores (es decir, no son claves):
Update MyTable Set IDColumn = IDColumn + 1 Where <whatever>fuente
Prueba esto:
Update Emp set testCount = ISNULL(testCount, 0) + 1 where testId=1fuente
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.fuente
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 10El 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".
fuente
Puedes probar lo siguiente:
DECLARE @i INT SET @i = @@ROWCOUNT + 1 INSERT INTO YourTable (Identity Column) VALUES (@i + 1)fuente