Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Campo Identity

Estas en el tema de Campo Identity en el foro de SQL Server en Foros del Web. Hola, tengo una duda y no sé si se puede hacer lo que quiero asi que se las paso a contar para ver si alguien ...
  #1 (permalink)  
Antiguo 08/09/2006, 13:52
Avatar de SeriketZu  
Fecha de Ingreso: septiembre-2006
Ubicación: Mendoza, Argentina
Mensajes: 78
Antigüedad: 17 años, 8 meses
Puntos: 0
Campo Identity

Hola, tengo una duda y no sé si se puede hacer lo que quiero asi que se las paso a contar para ver si alguien puede responderme.
Estoy haciendo un programita en Visual Studio 2005 que utiliza una base de datos en SQL Server 2005. Para probar que el programa funcione correctamente, llené la base de datos con datos de prueba y cuando vi que funcionaba todo bien, limpie la base de datos para poder cargar los datos reales.
En algunas tablas tengo un campo "ID" que es del tipo identity (en algunos casos int y en otros tinyint). Al ingresar nuevos datos veo que el campo ID empieza desde un número mucho mayor que el seed.
Estube probando y vi que una vez eliminado un registro, el número de la columna ID no es reutilizado, por ejemplo:
Si agrego 2 registros al campo, los ID serán 1 y 2.
Luego borro los registros y agrego uno nuevo y este queda con ID = 3.

Quisiera saber si se puede configurar el campo de alguna forma para que luego de limpiar la base de datos el campo ID vuelva a empezar de 1. Y también si es posible que al eliminar un registro, el número del ID pueda ser reutilizado.

Espero que se entienda y alguien pueda responderme.
Saludos
  #2 (permalink)  
Antiguo 08/09/2006, 16:25
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
DBCC CHECKIDENT (tabla, Reseed, 1)
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 08/09/2006, 21:20
Avatar de SeriketZu  
Fecha de Ingreso: septiembre-2006
Ubicación: Mendoza, Argentina
Mensajes: 78
Antigüedad: 17 años, 8 meses
Puntos: 0
Gracias :)
  #4 (permalink)  
Antiguo 09/09/2006, 06:02
Avatar de rlivon  
Fecha de Ingreso: enero-2004
Ubicación: Buenos Aires
Mensajes: 30
Antigüedad: 20 años, 3 meses
Puntos: 0
Debes usar la instrucción TRUNCATE. Te dejo un ejemplo de como funciona:

-- Creo una tabla
CREATE TABLE [Pepe] (
[idRespuesta] [bigint] IDENTITY (1, 1) NOT NULL ,
[Respuesta] [varchar] (50) COLLATE Modern_Spanish_CI_AS NULL
) ON [PRIMARY]
GO

-- Inserto un par de registros
insert into pepe ([Respuesta]) values ('Respuesta 1')
insert into pepe ([Respuesta]) values ('Respuesta 2')

-- Observo el registro recién insertado
select * from pepe

--Trunco la tabla
truncate table pepe

-- La tabla ahora esta vacia:
select * from pepe

-- Inserto un registro nuevamente
insert into pepe ([Respuesta]) values ('Respuesta 3')

--Como verás la numeración ha comenzado desde el inicio otra vez
select * from pepe

Saludos!
__________________
R@UL
  #5 (permalink)  
Antiguo 09/09/2006, 10:19
Avatar de SeriketZu  
Fecha de Ingreso: septiembre-2006
Ubicación: Mendoza, Argentina
Mensajes: 78
Antigüedad: 17 años, 8 meses
Puntos: 0
Muchas gracias rlivon, el comando Mithrandir a veces me daba error al insertar pero definitivamente el comando Truncate es lo que buscaba.
gracias!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:41.