SQL Server - Corregir Identitys

   
Vista:

Corregir Identitys

Publicado por daniel (13 intervenciones) el 19/05/2010 15:25:02
Gracias por leer esta consulta, estoy usando el sql 2008 y tengo una columna primary key en una tabla con valores identyti, elimine varios registros y cuando agrego me queda el intervalo que elimine sin ser asignado a ningun registro... como hago para re enumerar nuevamente mi columna para que queden todos los registros enumerados sin intervalos vacios?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Corregir Identitys

Publicado por Dani (2 intervenciones) el 19/05/2010 17:55:47
No es esa la función del identity, este tipo de campo sirve para que nunca hayan duplicados en una tabla, nunca renumera hacia atrás. De forma que si volvieras a borrar registros, volverías a tener huecos en la tabla.

Para tener un contador, podrías hacerlo con un trigger que te calcule antes de insertar en la tabla cuál es el último registro y le sume uno.

Si lo que quieres es renumerar la tabla usando el identity a pesar de todo lo más cómodo es eliminar el campo y luego volverlo a poner (aunque de esta forma el nuevo valor del id no tiene por qué coincidir con el antigüo)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Corregir Identitys

Publicado por Tiburoncin (9 intervenciones) el 22/05/2010 01:01:58
este ejemplo te ayudara

create table tmp.id (
id int identity(1,1),
nombre varchar(10)
)
go
insert into tmp.id (nombre) values ('nombre1')
go
select * from tmp.id
go
dbcc checkident("tmp.id", reseed, 10)
--aqui cambio el identity
--para q este en 10 el siguente sera 11
go
insert into tmp.id (nombre) values ('nombre11')

Salu2
Tiburoncin
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar