numerar registros

25/06/2007 - 18:13 por fernando C | Informe spam
Buenas...
lo que necesito es numerar los registros de una tabla. Es decir al crear una
tabla copiandola de otra le agrego el campo NroReg y necesito que los numere
secuenciamente.
La sentencia que uso es del tipo "Select NroLin,* into T2 from T1" como
hago para que ese NroReg se incremente numerando los registros? Existe la
forma? o no queda otra que leer la T1 e ir grabando la T2 con un Insert
incrementando una variable por cada lectura?

Muchas gracias.
Fernando C.
 

Leer las respuestas

#1 Jesús López
25/06/2007 - 20:14 | Informe spam
Existe la manera y funciona perfectamente en SQL 2000 y 2005. Se trata de
usar la función IDENTITY( tipo, semilla, incremento) en la instrucción
SELECT INTO:

USE TestDB

IF OBJECT_ID('dbo.TestTable') IS NOT NULL
DROP TABLE TestTable

CREATE TABLE TestTable
(
Id int PRIMARY KEY,
C1 int,
C2 int,
C3 int,
C4 int
)


INSERT INTO TestTable VALUES(1, 2, 3, 4, 5)
INSERT INTO TestTable VALUES(2, 1, 3, 4, 5)
INSERT INTO TestTable VALUES(3, 2, 1, 4, 5)
INSERT INTO TestTable VALUES(4, 2, 3, 1, 5)
INSERT INTO TestTable VALUES(5, 2, 3, 4, 1)

IF OBJECT_ID('dbo.TableCopy') IS NOT NULL
DROP TABLE TableCopy

SELECT IDENTITY(int, 1, 1) AS RowNumber, * INTO TableCopy
FROM TestTable
ORDER BY Id

SELECT * FROM TableCopy

No te olvides de especificar ORDER BY, si no SQL Server insertará los
registros en el orden que mejor le parezca.

Saludos:

Jesús López.
Solid Quality Mentors
www.solidq.com

"fernando C" escribió en el mensaje
news:
Buenas...
lo que necesito es numerar los registros de una tabla. Es decir al crear
una
tabla copiandola de otra le agrego el campo NroReg y necesito que los
numere
secuenciamente.
La sentencia que uso es del tipo "Select NroLin,* into T2 from T1" como
hago para que ese NroReg se incremente numerando los registros? Existe la
forma? o no queda otra que leer la T1 e ir grabando la T2 con un Insert
incrementando una variable por cada lectura?

Muchas gracias.
Fernando C.

Preguntas similares