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

#11 Javier Loria
13/11/2006 - 15:34 | Informe spam
Hola Todos:
Que no se malinterprete mi posteo:
Maxi dijo: "ojo con usarlos para mostrar informacion al usuario...",
comentario que tome como que cuidado no tienes puede meterte en problemas
porque no tienes tanto control sobre ellos.
BitOne: dijo: "al momento de eliminar un registro el siguiente numero
de identity sera incrementado een un quedando asi un hueco en tus numeros",
poniendo una demostracion a lo que Maxi dijo.
Javier dijo: " todavia peor no soporta transacciones" o sea aumentando
el valor de la demostracion de BitOne.
Este posteo no quiere decir NO USES IDENTITIES NUNCA, dice cuidado con
mostrar la informacion de ellos a los usuarios si quieres llevar controlo
sobre los numeros, ejemplos: Facturas, Recibos, Cheques, etc.
Saludos,


Javier Loria
Costa Rica-MVP
Solid Quality Learning


"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...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
#12 BitOne®
13/11/2006 - 16:55 | Informe spam
Perfecto Mas claro de aqui solo lo hace Dios :)

Saludos,

BitOne®
"Javier Loria" wrote in message
news:
Hola Todos:
Que no se malinterprete mi posteo:
Maxi dijo: "ojo con usarlos para mostrar informacion al usuario...",
comentario que tome como que cuidado no tienes puede meterte en problemas
porque no tienes tanto control sobre ellos.
BitOne: dijo: "al momento de eliminar un registro el siguiente numero
de identity sera incrementado een un quedando asi un hueco en tus


numeros",
poniendo una demostracion a lo que Maxi dijo.
Javier dijo: " todavia peor no soporta transacciones" o sea aumentando
el valor de la demostracion de BitOne.
Este posteo no quiere decir NO USES IDENTITIES NUNCA, dice cuidado con
mostrar la informacion de ellos a los usuarios si quieres llevar controlo
sobre los numeros, ejemplos: Facturas, Recibos, Cheques, etc.
Saludos,


Javier Loria
Costa Rica-MVP
Solid Quality Learning


"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
#13 Alejandro Mesa
13/11/2006 - 17:44 | Informe spam
Javier y BitOne®,

Se que lo han hecho con la mejor intencion y que todo lo dicho es correcto.
Solo quize agregar que el uso de columnas con propiedad "identity" tambien
tiene sus ventajas y que la otra opcion tambien tiene sus contras.

En el mundo de datamarts, donde las llaves subrrogadas y la carga masiva son
el pan de cada dia, las columnas con propiedad "identity" juegan un papel muy
importante.

Saludos,

Alejandro Mesa


"BitOne®" wrote:

Perfecto Mas claro de aqui solo lo hace Dios :)

Saludos,

BitOne®
"Javier Loria" wrote in message
news:
> Hola Todos:
> Que no se malinterprete mi posteo:
> Maxi dijo: "ojo con usarlos para mostrar informacion al usuario...",
> comentario que tome como que cuidado no tienes puede meterte en problemas
> porque no tienes tanto control sobre ellos.
> BitOne: dijo: "al momento de eliminar un registro el siguiente numero
> de identity sera incrementado een un quedando asi un hueco en tus
numeros",
> poniendo una demostracion a lo que Maxi dijo.
> Javier dijo: " todavia peor no soporta transacciones" o sea aumentando
> el valor de la demostracion de BitOne.
> Este posteo no quiere decir NO USES IDENTITIES NUNCA, dice cuidado con
> mostrar la informacion de ellos a los usuarios si quieres llevar controlo
> sobre los numeros, ejemplos: Facturas, Recibos, Cheques, etc.
> Saludos,
>
>
> Javier Loria
> Costa Rica-MVP
> Solid Quality Learning
>
>
> "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
#14 BitOne®
13/11/2006 - 20:54 | Informe spam
De acuerdo, yo voy de acuerdo con los dos :)

en la mayoria de los casos siempre voy de acuerdo con ustedes digase AM, JL,
Maxi.

Asi como con todos los demas del grupo, es bueno siempre tener estos tipos
de discusiones en los cuales
pueden quedar dilucidadas las ideas claramante y de este modo tener lo mejor
de cada elemento que compone
nuestro hijo Sql Server.

Con este punto ha quedado tan claro el uso de identitys que todo aquel que
pregunte en lo adelante solo temos
que pasr el hilo.


saludos Hermanos,

BitOne®



"Alejandro Mesa" wrote in message
news:
Javier y BitOne®,

Se que lo han hecho con la mejor intencion y que todo lo dicho es


correcto.
Solo quize agregar que el uso de columnas con propiedad "identity" tambien
tiene sus ventajas y que la otra opcion tambien tiene sus contras.

En el mundo de datamarts, donde las llaves subrrogadas y la carga masiva


son
el pan de cada dia, las columnas con propiedad "identity" juegan un papel


muy
importante.

Saludos,

Alejandro Mesa


"BitOne®" wrote:

> Perfecto Mas claro de aqui solo lo hace Dios :)
>
> Saludos,
>
> BitOne®
> "Javier Loria" wrote in message
> news:
> > Hola Todos:
> > Que no se malinterprete mi posteo:
> > Maxi dijo: "ojo con usarlos para mostrar informacion al


usuario...",
> > comentario que tome como que cuidado no tienes puede meterte en


problemas
> > porque no tienes tanto control sobre ellos.
> > BitOne: dijo: "al momento de eliminar un registro el siguiente


numero
> > de identity sera incrementado een un quedando asi un hueco en tus
> numeros",
> > poniendo una demostracion a lo que Maxi dijo.
> > Javier dijo: " todavia peor no soporta transacciones" o sea


aumentando
> > el valor de la demostracion de BitOne.
> > Este posteo no quiere decir NO USES IDENTITIES NUNCA, dice cuidado


con
> > mostrar la informacion de ellos a los usuarios si quieres llevar


controlo
> > sobre los numeros, ejemplos: Facturas, Recibos, Cheques, etc.
> > Saludos,
> >
> >
> > Javier Loria
> > Costa Rica-MVP
> > Solid Quality Learning
> >
> >
> > "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
#15 Maxi
13/11/2006 - 21:00 | Informe spam
jaja, no se si es bueno estar siempre de acuerdo :-)))) pero en esta vez
todos coincidimos en lo que dijimos :-)


Salu2

Microsoft MVP SQL Server
Culminis Speaker
INETA Speaker

"BitOne®" escribió en el mensaje
news:%
De acuerdo, yo voy de acuerdo con los dos :)

en la mayoria de los casos siempre voy de acuerdo con ustedes digase AM,
JL,
Maxi.

Asi como con todos los demas del grupo, es bueno siempre tener estos tipos
de discusiones en los cuales
pueden quedar dilucidadas las ideas claramante y de este modo tener lo
mejor
de cada elemento que compone
nuestro hijo Sql Server.

Con este punto ha quedado tan claro el uso de identitys que todo aquel que
pregunte en lo adelante solo temos
que pasr el hilo.


saludos Hermanos,

BitOne®



"Alejandro Mesa" wrote in
message
news:
Javier y BitOne®,

Se que lo han hecho con la mejor intencion y que todo lo dicho es


correcto.
Solo quize agregar que el uso de columnas con propiedad "identity"
tambien
tiene sus ventajas y que la otra opcion tambien tiene sus contras.

En el mundo de datamarts, donde las llaves subrrogadas y la carga masiva


son
el pan de cada dia, las columnas con propiedad "identity" juegan un papel


muy
importante.

Saludos,

Alejandro Mesa


"BitOne®" wrote:

> Perfecto Mas claro de aqui solo lo hace Dios :)
>
> Saludos,
>
> BitOne®
> "Javier Loria" wrote in message
> news:
> > Hola Todos:
> > Que no se malinterprete mi posteo:
> > Maxi dijo: "ojo con usarlos para mostrar informacion al


usuario...",
> > comentario que tome como que cuidado no tienes puede meterte en


problemas
> > porque no tienes tanto control sobre ellos.
> > BitOne: dijo: "al momento de eliminar un registro el siguiente


numero
> > de identity sera incrementado een un quedando asi un hueco en tus
> numeros",
> > poniendo una demostracion a lo que Maxi dijo.
> > Javier dijo: " todavia peor no soporta transacciones" o sea


aumentando
> > el valor de la demostracion de BitOne.
> > Este posteo no quiere decir NO USES IDENTITIES NUNCA, dice
> > cuidado


con
> > mostrar la informacion de ellos a los usuarios si quieres llevar


controlo
> > sobre los numeros, ejemplos: Facturas, Recibos, Cheques, etc.
> > Saludos,
> >
> >
> > Javier Loria
> > Costa Rica-MVP
> > Solid Quality Learning
> >
> >
> > "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
> > >> >> >>
> > >> >> >>
> > >> >> >
> > >> >> >
> > >> >>
> > >> >>
> > >> >
> > >> >
> > >>
> > >>
> > >>
> >
> >
>
>
>




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida