Como reinicializo la opc Identity de una Columna

10/11/2006 - 21:11 por Victor Moreno | Informe spam
Hola amigos:
Como reinicializo la opc Identity de una Columna ... algun comando o
ejemplo???

gracias de antemado por su ayuda



Victor Moreno

Lima-PERU

Preguntas similare

Leer las respuestas

#6 Javier Loria
12/11/2006 - 18:31 | Informe spam
Hola:
Y todavia peor no soporta transacciones, como se demuestra en ese codigo
que publique hacer 2 o 3 años:
==/* Codigo con IDENTITY */
DROP TABLE Test
GO
CREATE TABLE Test(
TestID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
TestName varchar(20) NOT NULL
)
GO
INSERT TEST
VALUES ('Uno')
INSERT TEST
VALUES ('Dos')
INSERT TEST
VALUES ('Tres')
GO
SELECT * FROM TEST
GO
DBCC CHECKIDENT(Test)

BEGIN TRAN
INSERT TEST
VALUES ('Cuatr')
ROLLBACK TRAN
GO
INSERT TEST
VALUES ('Cuatro')

SELECT * FROM TEST

DBCC CHECKIDENT(Test)

Si usas una seleccion pura transaccional de SQL:
/* Codigo sin IDENTITY */
DROP TABLE TEST
GO
CREATE TABLE Test(
TestID INT --IDENTITY(1,1)
NOT NULL PRIMARY KEY,
TestName varchar(20) NOT NULL
)
GO
INSERT TEST
SELECT COALESCE(MAX(TESTID),0)+1, 'Uno'
FROM TEST


INSERT TEST
SELECT COALESCE(MAX(TESTID),0)+1, 'Dos'
FROM TEST


INSERT TEST
SELECT COALESCE(MAX(TESTID),0)+1, 'Tres'
FROM TEST


GO
SELECT * FROM TEST
GO


BEGIN TRAN
INSERT TEST
SELECT COALESCE(MAX(TESTID),0)+1, 'Cuatr'
FROM TEST
ROLLBACK TRAN
GO

SELECT * FROM TEST

INSERT TEST
SELECT COALESCE(MAX(TESTID),0)+1, 'Cuatro'
FROM TEST

SELECT * FROM TEST
= Saludos,

Javier Loria
Costa Rica-MVP
Solid Quality Learning


"BitOne®" wrote in message
news:%
Uno de los principales problema de los identity es que al momento de
eliminar un registro el siguiente numero de identity sera incrementado
en un quedando asi un hueco en tus numeros, Ejemplo:

tienes un numeracion de este modo

1
2
3

y haces delete from tabla where campo = 3

Esto quedaria asi

1
2

Luego haces un insert

y tu tabla quedara asi

1
2
4

Este y entre otros

Por esta y otras razones es aconsejable tomar tu tabla y manejar una
trasaccion y en ella entonces
realizar la tipica operacion del max(campo) + 1;

Saludos,

BitOne®




"Victor Moreno" wrote in message
news:
podrias explicame q tipos de problemas tiene la opc identity por favor
...
yo solo lo pedia por q avia registrado
data de prueba y queria empezar de cero


"Maxi" escribió en el mensaje
news:
> Hola, no se para que usas los identiyes pero ojo con usarlos para


mostrar
> informacion al usuario, por ej numerar tus facturas o cosas por el


estilo,
> para esto es aconsejable usar numeradores por tabla propios tuyos ya
> que
> los identities tienen algunos problemas. Podrias indicarnos en que
> estas
> usando este tipo de datos?
>
>
> Saludos
>
> [Microsoft MVP SQL Server]
> www.sqlgurus.org
> Buenos Aires - Argentina
> "Victor Moreno" wrote in message
> news:
>> Hola amigos:
>> Como reinicializo la opc Identity de una Columna ... algun comando o
>> ejemplo???
>>
>> gracias de antemado por su ayuda
>>
>>
>>
>> Victor Moreno
>>
>> Lima-PERU
>>
>>
>
>






Respuesta Responder a este mensaje
#7 Alejandro Mesa
12/11/2006 - 19:14 | Informe spam
Javier,

Este comentario no va dirigido a ninguna persona en especifico.

Estoy de acuerdo en todo lo dicho anteriormente, pero tambien hay que
comentar que las columnas con propiedad "identity" son muy utiles cuando
hacemos una carga masiva. En cambio, si tenemos un procedimiento (como en el
ejemplo que adjunto) el cual usa una tabla para almacenar el ultimo valor
ingresado, entonces no podemos hacer una carga masiva sin usar tablas
intermedias y recorrerlas mediante cursores o bucles para asignar el proximo
valor a cada fila, obligandonos de esta forma a insertar en nuestra tabla de
uno en uno.

Creo que cuando hacemos este tipo de comparaciones, debemos comentar sobre
los pros y contras de cada metodo. Si solo nos enfocamos en las cosas malas
de uno y las buenas del otro, entonces no estamos siendo justos y podemos
crear una idea erronea en quien lee nuestro articulo.

http://www.microsoft.com/communitie...sloc=en-us

Saludos,

AMB


"Javier Loria" wrote:

Hola:
Y todavia peor no soporta transacciones, como se demuestra en ese codigo
que publique hacer 2 o 3 años:
==> /* Codigo con IDENTITY */
DROP TABLE Test
GO
CREATE TABLE Test(
TestID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
TestName varchar(20) NOT NULL
)
GO
INSERT TEST
VALUES ('Uno')
INSERT TEST
VALUES ('Dos')
INSERT TEST
VALUES ('Tres')
GO
SELECT * FROM TEST
GO
DBCC CHECKIDENT(Test)

BEGIN TRAN
INSERT TEST
VALUES ('Cuatr')
ROLLBACK TRAN
GO
INSERT TEST
VALUES ('Cuatro')

SELECT * FROM TEST

DBCC CHECKIDENT(Test)

Si usas una seleccion pura transaccional de SQL:
/* Codigo sin IDENTITY */
DROP TABLE TEST
GO
CREATE TABLE Test(
TestID INT --IDENTITY(1,1)
NOT NULL PRIMARY KEY,
TestName varchar(20) NOT NULL
)
GO
INSERT TEST
SELECT COALESCE(MAX(TESTID),0)+1, 'Uno'
FROM TEST


INSERT TEST
SELECT COALESCE(MAX(TESTID),0)+1, 'Dos'
FROM TEST


INSERT TEST
SELECT COALESCE(MAX(TESTID),0)+1, 'Tres'
FROM TEST


GO
SELECT * FROM TEST
GO


BEGIN TRAN
INSERT TEST
SELECT COALESCE(MAX(TESTID),0)+1, 'Cuatr'
FROM TEST
ROLLBACK TRAN
GO

SELECT * FROM TEST

INSERT TEST
SELECT COALESCE(MAX(TESTID),0)+1, 'Cuatro'
FROM TEST

SELECT * FROM TEST
=> Saludos,

Javier Loria
Costa Rica-MVP
Solid Quality Learning


"BitOne®" wrote in message
news:%
> Uno de los principales problema de los identity es que al momento de
> eliminar un registro el siguiente numero de identity sera incrementado
> en un quedando asi un hueco en tus numeros, Ejemplo:
>
> tienes un numeracion de este modo
>
> 1
> 2
> 3
>
> y haces delete from tabla where campo = 3
>
> Esto quedaria asi
>
> 1
> 2
>
> Luego haces un insert
>
> y tu tabla quedara asi
>
> 1
> 2
> 4
>
> Este y entre otros
>
> Por esta y otras razones es aconsejable tomar tu tabla y manejar una
> trasaccion y en ella entonces
> realizar la tipica operacion del max(campo) + 1;
>
> Saludos,
>
> BitOne®
>
>
>
>
> "Victor Moreno" wrote in message
> news:
>> podrias explicame q tipos de problemas tiene la opc identity por favor
>> ...
>> yo solo lo pedia por q avia registrado
>> data de prueba y queria empezar de cero
>>
>>
>> "Maxi" escribió en el mensaje
>> news:
>> > Hola, no se para que usas los identiyes pero ojo con usarlos para
> mostrar
>> > informacion al usuario, por ej numerar tus facturas o cosas por el
> estilo,
>> > para esto es aconsejable usar numeradores por tabla propios tuyos ya
>> > que
>> > los identities tienen algunos problemas. Podrias indicarnos en que
>> > estas
>> > usando este tipo de datos?
>> >
>> >
>> > Saludos
>> >
>> > [Microsoft MVP SQL Server]
>> > www.sqlgurus.org
>> > Buenos Aires - Argentina
>> > "Victor Moreno" wrote in message
>> > news:
>> >> Hola amigos:
>> >> Como reinicializo la opc Identity de una Columna ... algun comando o
>> >> ejemplo???
>> >>
>> >> gracias de antemado por su ayuda
>> >>
>> >>
>> >>
>> >> Victor Moreno
>> >>
>> >> Lima-PERU
>> >>
>> >>
>> >
>> >
>>
>>
>
>



Respuesta Responder a este mensaje
#8 Leandro Montedoro
13/11/2006 - 13:07 | Informe spam
dbcc checkident (MiTabla, reseed, 1)

Saludos,
Leandro Montedoro

"Victor Moreno" escribió en el mensaje
news:
Hola amigos:
Como reinicializo la opc Identity de una Columna ... algun comando o
ejemplo???

gracias de antemado por su ayuda



Victor Moreno

Lima-PERU


Respuesta Responder a este mensaje
#9 BitOne®
13/11/2006 - 14:26 | Informe spam
Estoy de acuerdo con alejandro.

Todo tiene pros y contra y debemos sopesar el uno y el otro en todo caso.

Post-Data: Este comentario es solamente para agregarme al hilo en cuanto al
pos y al contra
no a todo lo demas antes expuesto.

Saludos,

BitOne®

"Alejandro Mesa" wrote in message
news:
Javier,

Este comentario no va dirigido a ninguna persona en especifico.

Estoy de acuerdo en todo lo dicho anteriormente, pero tambien hay que
comentar que las columnas con propiedad "identity" son muy utiles cuando
hacemos una carga masiva. En cambio, si tenemos un procedimiento (como en


el
ejemplo que adjunto) el cual usa una tabla para almacenar el ultimo valor
ingresado, entonces no podemos hacer una carga masiva sin usar tablas
intermedias y recorrerlas mediante cursores o bucles para asignar el


proximo
valor a cada fila, obligandonos de esta forma a insertar en nuestra tabla


de
uno en uno.

Creo que cuando hacemos este tipo de comparaciones, debemos comentar sobre
los pros y contras de cada metodo. Si solo nos enfocamos en las cosas


malas
de uno y las buenas del otro, entonces no estamos siendo justos y podemos
crear una idea erronea en quien lee nuestro articulo.




http://www.microsoft.com/communitie...?dg=micros
oft.public.es.sqlserver&midX871337-5b2a-460e-81b7-9d6e17282020&sloc=en-us

Saludos,

AMB


"Javier Loria" wrote:

> Hola:
> Y todavia peor no soporta transacciones, como se demuestra en ese


codigo
> que publique hacer 2 o 3 años:
> ==> > /* Codigo con IDENTITY */
> DROP TABLE Test
> GO
> CREATE TABLE Test(
> TestID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
> TestName varchar(20) NOT NULL
> )
> GO
> INSERT TEST
> VALUES ('Uno')
> INSERT TEST
> VALUES ('Dos')
> INSERT TEST
> VALUES ('Tres')
> GO
> SELECT * FROM TEST
> GO
> DBCC CHECKIDENT(Test)
>
> BEGIN TRAN
> INSERT TEST
> VALUES ('Cuatr')
> ROLLBACK TRAN
> GO
> INSERT TEST
> VALUES ('Cuatro')
>
> SELECT * FROM TEST
>
> DBCC CHECKIDENT(Test)
>
> Si usas una seleccion pura transaccional de SQL:
> /* Codigo sin IDENTITY */
> DROP TABLE TEST
> GO
> CREATE TABLE Test(
> TestID INT --IDENTITY(1,1)
> NOT NULL PRIMARY KEY,
> TestName varchar(20) NOT NULL
> )
> GO
> INSERT TEST
> SELECT COALESCE(MAX(TESTID),0)+1, 'Uno'
> FROM TEST
>
>
> INSERT TEST
> SELECT COALESCE(MAX(TESTID),0)+1, 'Dos'
> FROM TEST
>
>
> INSERT TEST
> SELECT COALESCE(MAX(TESTID),0)+1, 'Tres'
> FROM TEST
>
>
> GO
> SELECT * FROM TEST
> GO
>
>
> BEGIN TRAN
> INSERT TEST
> SELECT COALESCE(MAX(TESTID),0)+1, 'Cuatr'
> FROM TEST
> ROLLBACK TRAN
> GO
>
> SELECT * FROM TEST
>
> INSERT TEST
> SELECT COALESCE(MAX(TESTID),0)+1, 'Cuatro'
> FROM TEST
>
> SELECT * FROM TEST
> => > Saludos,
>
> Javier Loria
> Costa Rica-MVP
> Solid Quality Learning
>
>
> "BitOne®" wrote in message
> news:%
> > Uno de los principales problema de los identity es que al momento de
> > eliminar un registro el siguiente numero de identity sera incrementado
> > en un quedando asi un hueco en tus numeros, Ejemplo:
> >
> > tienes un numeracion de este modo
> >
> > 1
> > 2
> > 3
> >
> > y haces delete from tabla where campo = 3
> >
> > Esto quedaria asi
> >
> > 1
> > 2
> >
> > Luego haces un insert
> >
> > y tu tabla quedara asi
> >
> > 1
> > 2
> > 4
> >
> > Este y entre otros
> >
> > Por esta y otras razones es aconsejable tomar tu tabla y manejar una
> > trasaccion y en ella entonces
> > realizar la tipica operacion del max(campo) + 1;
> >
> > Saludos,
> >
> > BitOne®
> >
> >
> >
> >
> > "Victor Moreno" wrote in message
> > news:
> >> podrias explicame q tipos de problemas tiene la opc identity por


favor
> >> ...
> >> yo solo lo pedia por q avia registrado
> >> data de prueba y queria empezar de cero
> >>
> >>
> >> "Maxi" escribió en el mensaje
> >> news:
> >> > Hola, no se para que usas los identiyes pero ojo con usarlos para
> > mostrar
> >> > informacion al usuario, por ej numerar tus facturas o cosas por el
> > estilo,
> >> > para esto es aconsejable usar numeradores por tabla propios tuyos


ya
> >> > que
> >> > los identities tienen algunos problemas. Podrias indicarnos en que
> >> > estas
> >> > usando este tipo de datos?
> >> >
> >> >
> >> > Saludos
> >> >
> >> > [Microsoft MVP SQL Server]
> >> > www.sqlgurus.org
> >> > Buenos Aires - Argentina
> >> > "Victor Moreno" wrote in message
> >> > news:
> >> >> Hola amigos:
> >> >> Como reinicializo la opc Identity de una Columna ... algun


comando o
> >> >> ejemplo???
> >> >>
> >> >> gracias de antemado por su ayuda
> >> >>
> >> >>
> >> >>
> >> >> Victor Moreno
> >> >>
> >> >> Lima-PERU
> >> >>
> >> >>
> >> >
> >> >
> >>
> >>
> >
> >
>
>
>
Respuesta Responder a este mensaje
#10 Maxi
13/11/2006 - 14:53 | Informe spam
Hola, claro q todo tiene pros y contras pero por lo general cuando hacen
esta pregunta de indentities es para usarlo donde no hay q usarlo


Salu2

Microsoft MVP SQL Server
Culminis Speaker
INETA Speaker

"BitOne®" escribió en el mensaje
news:
Estoy de acuerdo con alejandro.

Todo tiene pros y contra y debemos sopesar el uno y el otro en todo caso.

Post-Data: Este comentario es solamente para agregarme al hilo en cuanto
al
pos y al contra
no a todo lo demas antes expuesto.

Saludos,

BitOne®

"Alejandro Mesa" wrote in
message
news:
Javier,

Este comentario no va dirigido a ninguna persona en especifico.

Estoy de acuerdo en todo lo dicho anteriormente, pero tambien hay que
comentar que las columnas con propiedad "identity" son muy utiles cuando
hacemos una carga masiva. En cambio, si tenemos un procedimiento (como en


el
ejemplo que adjunto) el cual usa una tabla para almacenar el ultimo valor
ingresado, entonces no podemos hacer una carga masiva sin usar tablas
intermedias y recorrerlas mediante cursores o bucles para asignar el


proximo
valor a cada fila, obligandonos de esta forma a insertar en nuestra tabla


de
uno en uno.

Creo que cuando hacemos este tipo de comparaciones, debemos comentar
sobre
los pros y contras de cada metodo. Si solo nos enfocamos en las cosas


malas
de uno y las buenas del otro, entonces no estamos siendo justos y podemos
crear una idea erronea en quien lee nuestro articulo.




http://www.microsoft.com/communitie...?dg=micros
oft.public.es.sqlserver&midX871337-5b2a-460e-81b7-9d6e17282020&sloc=en-us

Saludos,

AMB


"Javier Loria" wrote:

> Hola:
> Y todavia peor no soporta transacciones, como se demuestra en ese


codigo
> que publique hacer 2 o 3 años:
> ==>> > /* Codigo con IDENTITY */
> DROP TABLE Test
> GO
> CREATE TABLE Test(
> TestID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
> TestName varchar(20) NOT NULL
> )
> GO
> INSERT TEST
> VALUES ('Uno')
> INSERT TEST
> VALUES ('Dos')
> INSERT TEST
> VALUES ('Tres')
> GO
> SELECT * FROM TEST
> GO
> DBCC CHECKIDENT(Test)
>
> BEGIN TRAN
> INSERT TEST
> VALUES ('Cuatr')
> ROLLBACK TRAN
> GO
> INSERT TEST
> VALUES ('Cuatro')
>
> SELECT * FROM TEST
>
> DBCC CHECKIDENT(Test)
>
> Si usas una seleccion pura transaccional de SQL:
> /* Codigo sin IDENTITY */
> DROP TABLE TEST
> GO
> CREATE TABLE Test(
> TestID INT --IDENTITY(1,1)
> NOT NULL PRIMARY KEY,
> TestName varchar(20) NOT NULL
> )
> GO
> INSERT TEST
> SELECT COALESCE(MAX(TESTID),0)+1, 'Uno'
> FROM TEST
>
>
> INSERT TEST
> SELECT COALESCE(MAX(TESTID),0)+1, 'Dos'
> FROM TEST
>
>
> INSERT TEST
> SELECT COALESCE(MAX(TESTID),0)+1, 'Tres'
> FROM TEST
>
>
> GO
> SELECT * FROM TEST
> GO
>
>
> BEGIN TRAN
> INSERT TEST
> SELECT COALESCE(MAX(TESTID),0)+1, 'Cuatr'
> FROM TEST
> ROLLBACK TRAN
> GO
>
> SELECT * FROM TEST
>
> INSERT TEST
> SELECT COALESCE(MAX(TESTID),0)+1, 'Cuatro'
> FROM TEST
>
> SELECT * FROM TEST
> =>> > Saludos,
>
> Javier Loria
> Costa Rica-MVP
> Solid Quality Learning
>
>
> "BitOne®" wrote in message
> news:%
> > Uno de los principales problema de los identity es que al momento de
> > eliminar un registro el siguiente numero de identity sera
> > incrementado
> > en un quedando asi un hueco en tus numeros, Ejemplo:
> >
> > tienes un numeracion de este modo
> >
> > 1
> > 2
> > 3
> >
> > y haces delete from tabla where campo = 3
> >
> > Esto quedaria asi
> >
> > 1
> > 2
> >
> > Luego haces un insert
> >
> > y tu tabla quedara asi
> >
> > 1
> > 2
> > 4
> >
> > Este y entre otros
> >
> > Por esta y otras razones es aconsejable tomar tu tabla y manejar una
> > trasaccion y en ella entonces
> > realizar la tipica operacion del max(campo) + 1;
> >
> > Saludos,
> >
> > BitOne®
> >
> >
> >
> >
> > "Victor Moreno" wrote in message
> > news:
> >> podrias explicame q tipos de problemas tiene la opc identity por


favor
> >> ...
> >> yo solo lo pedia por q avia registrado
> >> data de prueba y queria empezar de cero
> >>
> >>
> >> "Maxi" escribió en el mensaje
> >> news:
> >> > Hola, no se para que usas los identiyes pero ojo con usarlos para
> > mostrar
> >> > informacion al usuario, por ej numerar tus facturas o cosas por el
> > estilo,
> >> > para esto es aconsejable usar numeradores por tabla propios tuyos


ya
> >> > que
> >> > los identities tienen algunos problemas. Podrias indicarnos en que
> >> > estas
> >> > usando este tipo de datos?
> >> >
> >> >
> >> > Saludos
> >> >
> >> > [Microsoft MVP SQL Server]
> >> > www.sqlgurus.org
> >> > Buenos Aires - Argentina
> >> > "Victor Moreno" wrote in message
> >> > news:
> >> >> Hola amigos:
> >> >> Como reinicializo la opc Identity de una Columna ... algun


comando o
> >> >> ejemplo???
> >> >>
> >> >> gracias de antemado por su ayuda
> >> >>
> >> >>
> >> >>
> >> >> Victor Moreno
> >> >>
> >> >> Lima-PERU
> >> >>
> >> >>
> >> >
> >> >
> >>
> >>
> >
> >
>
>
>




Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida