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 actualizo esta tabla, la ID
columna debería incrementarse en 1,
Ahora ID
se 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 + 1
Para crear un nuevo valor, uno más que el anterior más alto (generalmente), use una columna con IDENTIDAD
fuente
ISNULL
declaració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=1
fuente
Puede usar
IDENTITY
cuá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
Id
de 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 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".
fuente
Puedes probar lo siguiente:
DECLARE @i INT SET @i = @@ROWCOUNT + 1 INSERT INTO YourTable (Identity Column) VALUES (@i + 1)
fuente