una tipos modificar existente ejemplo declarar datos columna auto_increment agregar actualizar sql sql-server sql-server-2000 auto-increment row-number

tipos - modificar columna auto_increment sql server



MSSQL Seleccionar instrucción con columna de número entero incremental... no de una tabla (4)

Es feo y funciona mal, pero técnicamente esto funciona en cualquier tabla con al menos un campo único Y funciona en SQL 2000.

SELECT (SELECT COUNT(*) FROM myTable T1 WHERE T1.UniqueField<=T2.UniqueField) as RowNum, T2.OtherField FROM myTable T2 ORDER By T2.UniqueField

Nota: Si usa este enfoque y agrega una cláusula WHERE al SELECT externo, debe agregarlo al SELECT interno también si desea que los números sean continuos.

Necesito, si es posible, una consulta t-sql que, al devolver los valores de una tabla arbitraria, también devuelve una columna entera incremental con value = 1 para la primera fila, 2 para la segunda, y así sucesivamente.

Esta columna no reside realmente en ninguna tabla, y debe ser estrictamente incremental, porque la cláusula ORDER BY podría ordenar las filas de la tabla y quiero que la fila incremental en forma perfecta siempre ...

Gracias por adelantado.

--EDIT Lo siento, se me olvidó mencionar, debe ejecutarse en SQL Server 2000


Para SQL 2005 y posteriores

SELECT ROW_NUMBER() OVER( ORDER BY SomeColumn ) AS ''rownumber'',* FROM YourTable

para el 2000 necesitas hacer algo como esto

SELECT IDENTITY(INT, 1,1) AS Rank ,VALUE INTO #Ranks FROM YourTable WHERE 1=0 INSERT INTO #Ranks SELECT SomeColumn FROM YourTable ORDER BY SomeColumn SELECT * FROM #Ranks Order By Ranks

vea también aquí Número de fila



Puede comenzar con un número personalizado e incrementar desde allí, por ejemplo, desea agregar un número de cheque para cada pago que puede hacer:

select @StartChequeNumber = 3446; SELECT ((ROW_NUMBER() OVER(ORDER BY AnyColumn)) + @StartChequeNumber ) AS ''ChequeNumber'' ,* FROM YourTable

dará el número de cheque correcto para cada fila.