Autonumerico en SQL Sever

01/11/2003 - 14:32 por Franci | Informe spam
Hola Grupo,

he migrado una base de datos de Access a SQL Server 2000, esta base de
datos es utilizada por una aplicación vb, tengo el problema que en access
había tablas que tenían algunos campos de tipo autonumérico y creo q eso no
existe en SQL Server.

¿Existe algún tipo de datos en SQL Server que haga las funciones del
autonmérico del access? ¿Si no es así, que alternativas hay?

Muchas gracias de antemano

Saludos
______
Franci

Preguntas similare

Leer las respuestas

#6 Accotto Maximiliano D.
01/11/2003 - 15:41 | Informe spam
porque no es bueno? que problemas has tenido con el mismo?

yo tengo una aplicacion ERP muy conocida del mercado donde tiene mas de 300
tablas y en todas un campo rowid para identity!!

y cuando tienes muchos registros es muy interesante tener un identity ya que
hay veces q por ej vb o .net hacen macanas sin no tienes un campo definido
asi.

un abrazo

Accotto Maximiliano
Gerente de Sistemas
Fundicion San Cayetano S.A.
Buenos Aires
Argentina


"Javier Loria" escribió en el mensaje
news:
Hola Franci:
No existe un tipo autonumerico, existe una "propiedad" IDENTITY como


te
indico Accotto.
Si usas el Enterprise Manager para crear las tablas despues de
seleccionar alguno de los tipos enteros (smallint, int, bigint), y luego


en
la parte inferior marcas la propiedad Identity, en Yes (Si). Luego puedes
configurar el Seed (Inicio) y el Increment (Incremento), esto generara el
codigo que escribio Accotto.
Algunas personas, incluyendome, pensamos que no es buena idea usar
identities.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Franci escribio:
> gracias Accotto,
>
> pero ese tipo no existe, he intentado ponerlo desde el administrador
> corporativo y me dice que tiene que ser uno de la lista y ese no
> viene, yo uso SQL Server 2000
>
> Saludos
>
> "Accotto Maximiliano D."
> escribió en el mensaje news:
>> si señor!! debes usar tipo de datos Int Identity
>>
>> ej:
>>
>> Create table prueba (id int identity)
>>
>> un abrazo
>>
>> Accotto Maximiliano
>> Gerente de Sistemas
>> Fundicion San Cayetano S.A.
>> Buenos Aires
>>
>>
>> Argentina
>>
>> "Franci" escribió en el mensaje
>> news:
>>> Hola Grupo,
>>>
>>> he migrado una base de datos de Access a SQL Server 2000, esta
>>> base de datos es utilizada por una aplicación vb, tengo el problema
>>> que en access había tablas que tenían algunos campos de tipo
>>> autonumérico y creo q eso no existe en SQL Server.
>>>
>>> ¿Existe algún tipo de datos en SQL Server que haga las
>>> funciones del autonmérico del access? ¿Si no es así, que
>>> alternativas hay?
>>>
>>> Muchas gracias de antemano
>>>
>>> Saludos
>>> ______
>>> Franci


Respuesta Responder a este mensaje
#7 Javier Loria
01/11/2003 - 17:27 | Informe spam
Hola:
Este es un tema polemico, otros desarrolladores te hablaran maravillas
de los identities. Si quieres ver un poco de la discusion pueder revisar un
articulo de Carlos Sacristan en Claves Naturales o Artificiales?, lo puedes
encontrar en http://www.portalsql.com/
Resume bastante bien una "intercambio" de ideas que tuvimos a principio
de este de ano.
Mi recomendacion: olvidate del Identity, trata de identificar cuales son
las columnas que realmente identifican una fila y definela como Llave
Primaria.

Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Franci escribio:
Gracias Javier, ¿por qué no es bueno usar identities?

Saludos

"Javier Loria" escribió en el mensaje
news:
Hola Franci:
No existe un tipo autonumerico, existe una "propiedad" IDENTITY
como te indico Accotto.
Si usas el Enterprise Manager para crear las tablas despues de
seleccionar alguno de los tipos enteros (smallint, int, bigint), y
luego en la parte inferior marcas la propiedad Identity, en Yes
(Si). Luego puedes configurar el Seed (Inicio) y el Increment
(Incremento), esto generara el codigo que escribio Accotto.
Algunas personas, incluyendome, pensamos que no es buena idea
usar identities.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Franci escribio:
gracias Accotto,

pero ese tipo no existe, he intentado ponerlo desde el administrador
corporativo y me dice que tiene que ser uno de la lista y ese no
viene, yo uso SQL Server 2000

Saludos

"Accotto Maximiliano D."
escribió en el mensaje news:
si señor!! debes usar tipo de datos Int Identity

ej:

Create table prueba (id int identity)

un abrazo

Accotto Maximiliano
Gerente de Sistemas
Fundicion San Cayetano S.A.
Buenos Aires


Argentina

"Franci" escribió en el mensaje
news:
Hola Grupo,

he migrado una base de datos de Access a SQL Server 2000, esta
base de datos es utilizada por una aplicación vb, tengo el
problema que en access había tablas que tenían algunos campos de
tipo autonumérico y creo q eso no existe en SQL Server.

¿Existe algún tipo de datos en SQL Server que haga las
funciones del autonmérico del access? ¿Si no es así, que
alternativas hay?

Muchas gracias de antemano

Saludos
______
Franci
Respuesta Responder a este mensaje
#8 Miguel Egea
01/11/2003 - 20:58 | Informe spam
Hola, Accotto es una vieja discusión esta del identity si/no, si lees el
artículo que recomendaba javier puedes ver a los problemas a los que se
refiere y hacer lo que te parezca oportuno.


=Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.
Brigada Anti-Cursores
Aviso de Seguridad
http://www.microsoft.com/spain/tech...9-USER.asp
==
"Accotto Maximiliano D." escribió en el
mensaje news:%
porque no es bueno? que problemas has tenido con el mismo?

yo tengo una aplicacion ERP muy conocida del mercado donde tiene mas de


300
tablas y en todas un campo rowid para identity!!

y cuando tienes muchos registros es muy interesante tener un identity ya


que
hay veces q por ej vb o .net hacen macanas sin no tienes un campo definido
asi.

un abrazo

Accotto Maximiliano
Gerente de Sistemas
Fundicion San Cayetano S.A.
Buenos Aires
Argentina


"Javier Loria" escribió en el mensaje
news:
> Hola Franci:
> No existe un tipo autonumerico, existe una "propiedad" IDENTITY como
te
> indico Accotto.
> Si usas el Enterprise Manager para crear las tablas despues de
> seleccionar alguno de los tipos enteros (smallint, int, bigint), y luego
en
> la parte inferior marcas la propiedad Identity, en Yes (Si). Luego


puedes
> configurar el Seed (Inicio) y el Increment (Incremento), esto generara


el
> codigo que escribio Accotto.
> Algunas personas, incluyendome, pensamos que no es buena idea usar
> identities.
> Saludos,
>
>
> Javier Loria
> Costa Rica
> Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
> que pueda ser copiado y pegado al Query Analizer.
> La version de SQL y Service Pack tambien ayuda.
> Franci escribio:
> > gracias Accotto,
> >
> > pero ese tipo no existe, he intentado ponerlo desde el administrador
> > corporativo y me dice que tiene que ser uno de la lista y ese no
> > viene, yo uso SQL Server 2000
> >
> > Saludos
> >
> > "Accotto Maximiliano D."
> > escribió en el mensaje news:
> >> si señor!! debes usar tipo de datos Int Identity
> >>
> >> ej:
> >>
> >> Create table prueba (id int identity)
> >>
> >> un abrazo
> >>
> >> Accotto Maximiliano
> >> Gerente de Sistemas
> >> Fundicion San Cayetano S.A.
> >> Buenos Aires
> >>
> >>
> >> Argentina
> >>
> >> "Franci" escribió en el mensaje
> >> news:
> >>> Hola Grupo,
> >>>
> >>> he migrado una base de datos de Access a SQL Server 2000, esta
> >>> base de datos es utilizada por una aplicación vb, tengo el problema
> >>> que en access había tablas que tenían algunos campos de tipo
> >>> autonumérico y creo q eso no existe en SQL Server.
> >>>
> >>> ¿Existe algún tipo de datos en SQL Server que haga las
> >>> funciones del autonmérico del access? ¿Si no es así, que
> >>> alternativas hay?
> >>>
> >>> Muchas gracias de antemano
> >>>
> >>> Saludos
> >>> ______
> >>> Franci
>
>


Respuesta Responder a este mensaje
#9 Javier Loria
01/11/2003 - 23:56 | Informe spam
Hola Accotto:
Me alegro mucho que tengas tanto exito con tu ERP y que sea tan conocida
tu aplicacion.
Yo por mi parte, todavia estoy aprendiendo SQL y no he necesitado el
identity hasta el momento. Algunas dudas, que quedan:
a) Si SQL es un estandar para realizar consultas, porque otras
plataformas no lo soportan (excepto Sybase)?. Y si no es parte del
estandar, no es mas facil que cambie en las proximas versiones y mi codigo
no sea compatible?. Es realmente tan innovador y mejora tanto la aplicacion
que merece que rompa el estandard?
b) En alguna parte lei, que las llaves primarias eran el conjunto de
atributos de la entidad que identificaban una fila (registro)? Pero si el
Identity no es un atributo de la fila como puede ser llave primaria? Por
otra parte como hace la BD para verificar que no incluyan 2 productos
iguales, 2 facturas iguales, etc..
c) Tengo entendido que las transacciones son un concepto muy importante
de SQL, porque el identity no participa en transacciones? Que pasa si viene
un auditor y encuentra "huecos" en las tablas, como explico esos brincos si
fue que lo borraron o si no?
d) Tengo algunas aplicaciones en VB.NET y otras en C#, y en ninguna de
las Tablas tengo Identities definidos, tampoco he tenido problemas, que tipo
de problemas debo esperar?
e) Porque en este foro hay tantas preguntas sobre el Identity y tantos
comandos tan raros: DBCC CHECKIDENT(), SET IDENTITY_INSERT, porque no pueden
haber dos columnas identities en una tabla? como le quito el identity a una
columna y se lo paso a otra?, como hago que un identity se reinicie cuando
cambio de ano (o de factura, o cualquier otra columna). Porque no se pueden
solucionar estos problemas con los comandos simples: INSERT, DELETE, UPDATE
Y SELECT?.

No espero que me contestes las preguntas anteriores y no pretendo
discutir este tema, ya que cada vez que lo hago Miguel y Emilio me
"reganan", pero si me parece que son preguntas que cualquier desarollador
debe hacerse.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Accotto Maximiliano D. escribio:
porque no es bueno? que problemas has tenido con el mismo?

yo tengo una aplicacion ERP muy conocida del mercado donde tiene mas
de 300 tablas y en todas un campo rowid para identity!!

y cuando tienes muchos registros es muy interesante tener un identity
ya que hay veces q por ej vb o .net hacen macanas sin no tienes un
campo definido asi.

un abrazo



"Javier Loria" escribió en el mensaje
news:
Hola Franci:
No existe un tipo autonumerico, existe una "propiedad" IDENTITY
como te indico Accotto.
Si usas el Enterprise Manager para crear las tablas despues de
seleccionar alguno de los tipos enteros (smallint, int, bigint), y
luego en la parte inferior marcas la propiedad Identity, en Yes
(Si). Luego puedes configurar el Seed (Inicio) y el Increment
(Incremento), esto generara el codigo que escribio Accotto.
Algunas personas, incluyendome, pensamos que no es buena idea
usar identities.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Franci escribio:
gracias Accotto,

pero ese tipo no existe, he intentado ponerlo desde el administrador
corporativo y me dice que tiene que ser uno de la lista y ese no
viene, yo uso SQL Server 2000

Saludos

"Accotto Maximiliano D."
escribió en el mensaje news:
si señor!! debes usar tipo de datos Int Identity

ej:

Create table prueba (id int identity)

un abrazo

Accotto Maximiliano
Gerente de Sistemas
Fundicion San Cayetano S.A.
Buenos Aires


Argentina

"Franci" escribió en el mensaje
news:
Hola Grupo,

he migrado una base de datos de Access a SQL Server 2000, esta
base de datos es utilizada por una aplicación vb, tengo el
problema que en access había tablas que tenían algunos campos de
tipo autonumérico y creo q eso no existe en SQL Server.

¿Existe algún tipo de datos en SQL Server que haga las
funciones del autonmérico del access? ¿Si no es así, que
alternativas hay?

Muchas gracias de antemano

Saludos
______
Franci
Respuesta Responder a este mensaje
#10 Maximiliano Accotto
02/11/2003 - 03:55 | Informe spam
mira el tema es largo y la aplicacion ERP no es mia sino de una ampresa muy
conocida de soft ERP en el mundo.

Y te cuento lo siguiente:

El tema de identity hay veces q en .net o en vb trate problemas no hacerlo
ej:

Si recorres una gran cantidad de registros y usas el metodo edit y luego
update encontraas errores en algunas ocasiones como q el registro no se
puede actualizar.

Bien!! esto luego de muchas horas de investigacion y consulta on otros
profesionales me han dicho q ponga un campo identidad y la verdad q el tema
se ha solucionado desde ahi.


ojo yo solo lo uso por eso y en grandes proyectos lo vi usar por el mismo
problema (estoy hablando de bdd mayores a los 30gb).

Ahora yo no soy para nada amante de los identity!! no te confundas!! solo vi
q eran una solucion a un problema q empece a tener y consultando con
empreasas q desarrollan.

No creo q sea un tema de discusion!! no vale la pena, creo q cada maestro
tiene su librito no? y q ademas si no sirviera de nada no existiria como
opcion, no te parece?

Un abrazo


"Javier Loria" escribió en el mensaje
news:e%
Hola Accotto:
Me alegro mucho que tengas tanto exito con tu ERP y que sea tan


conocida
tu aplicacion.
Yo por mi parte, todavia estoy aprendiendo SQL y no he necesitado el
identity hasta el momento. Algunas dudas, que quedan:
a) Si SQL es un estandar para realizar consultas, porque otras
plataformas no lo soportan (excepto Sybase)?. Y si no es parte del
estandar, no es mas facil que cambie en las proximas versiones y mi codigo
no sea compatible?. Es realmente tan innovador y mejora tanto la


aplicacion
que merece que rompa el estandard?
b) En alguna parte lei, que las llaves primarias eran el conjunto de
atributos de la entidad que identificaban una fila (registro)? Pero si el
Identity no es un atributo de la fila como puede ser llave primaria? Por
otra parte como hace la BD para verificar que no incluyan 2 productos
iguales, 2 facturas iguales, etc..
c) Tengo entendido que las transacciones son un concepto muy


importante
de SQL, porque el identity no participa en transacciones? Que pasa si


viene
un auditor y encuentra "huecos" en las tablas, como explico esos brincos


si
fue que lo borraron o si no?
d) Tengo algunas aplicaciones en VB.NET y otras en C#, y en ninguna de
las Tablas tengo Identities definidos, tampoco he tenido problemas, que


tipo
de problemas debo esperar?
e) Porque en este foro hay tantas preguntas sobre el Identity y tantos
comandos tan raros: DBCC CHECKIDENT(), SET IDENTITY_INSERT, porque no


pueden
haber dos columnas identities en una tabla? como le quito el identity a


una
columna y se lo paso a otra?, como hago que un identity se reinicie cuando
cambio de ano (o de factura, o cualquier otra columna). Porque no se


pueden
solucionar estos problemas con los comandos simples: INSERT, DELETE,


UPDATE
Y SELECT?.

No espero que me contestes las preguntas anteriores y no pretendo
discutir este tema, ya que cada vez que lo hago Miguel y Emilio me
"reganan", pero si me parece que son preguntas que cualquier desarollador
debe hacerse.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Accotto Maximiliano D. escribio:
> porque no es bueno? que problemas has tenido con el mismo?
>
> yo tengo una aplicacion ERP muy conocida del mercado donde tiene mas
> de 300 tablas y en todas un campo rowid para identity!!
>
> y cuando tienes muchos registros es muy interesante tener un identity
> ya que hay veces q por ej vb o .net hacen macanas sin no tienes un
> campo definido asi.
>
> un abrazo
>
>
>
> "Javier Loria" escribió en el mensaje
> news:
>> Hola Franci:
>> No existe un tipo autonumerico, existe una "propiedad" IDENTITY
>> como te indico Accotto.
>> Si usas el Enterprise Manager para crear las tablas despues de
>> seleccionar alguno de los tipos enteros (smallint, int, bigint), y
>> luego en la parte inferior marcas la propiedad Identity, en Yes
>> (Si). Luego puedes configurar el Seed (Inicio) y el Increment
>> (Incremento), esto generara el codigo que escribio Accotto.
>> Algunas personas, incluyendome, pensamos que no es buena idea
>> usar identities.
>> Saludos,
>>
>>
>> Javier Loria
>> Costa Rica
>> Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
>> que pueda ser copiado y pegado al Query Analizer.
>> La version de SQL y Service Pack tambien ayuda.
>> Franci escribio:
>>> gracias Accotto,
>>>
>>> pero ese tipo no existe, he intentado ponerlo desde el administrador
>>> corporativo y me dice que tiene que ser uno de la lista y ese no
>>> viene, yo uso SQL Server 2000
>>>
>>> Saludos
>>>
>>> "Accotto Maximiliano D."
>>> escribió en el mensaje news:
>>>> si señor!! debes usar tipo de datos Int Identity
>>>>
>>>> ej:
>>>>
>>>> Create table prueba (id int identity)
>>>>
>>>> un abrazo
>>>>
>>>> Accotto Maximiliano
>>>> Gerente de Sistemas
>>>> Fundicion San Cayetano S.A.
>>>> Buenos Aires
>>>>
>>>>
>>>> Argentina
>>>>
>>>> "Franci" escribió en el mensaje
>>>> news:
>>>>> Hola Grupo,
>>>>>
>>>>> he migrado una base de datos de Access a SQL Server 2000, esta
>>>>> base de datos es utilizada por una aplicación vb, tengo el
>>>>> problema que en access había tablas que tenían algunos campos de
>>>>> tipo autonumérico y creo q eso no existe en SQL Server.
>>>>>
>>>>> ¿Existe algún tipo de datos en SQL Server que haga las
>>>>> funciones del autonmérico del access? ¿Si no es así, que
>>>>> alternativas hay?
>>>>>
>>>>> Muchas gracias de antemano
>>>>>
>>>>> Saludos
>>>>> ______
>>>>> Franci


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