Asignar un identity

25/07/2006 - 23:35 por Antonio Ortiz | Informe spam
Hace tiempo pregunte como asignar un indentity al insertar un registro, algo
que es posible hacer con Access. Mi necesidad era la de importar datos de
una base de datos con estructura similar sin perder las referencias
correctas a las respectivas llaves primarias (Identity). La respuesta del
foro fue que no se puede, pero despues de indagar un tiempo encontre que si
se puede!, aqui esta la solucion:

SET IDENTITY_INSERT bd.dbo.MiTabla ON
Insert Into MiTabla (ID, Campo1, Campo2) VALUES(100, 'Valor 1', 'Valor 2')
Insert Into MiTabla (ID, Campo1, Campo2) VALUES(110, 'Valor 1', 'Valor 2')
Insert Into MiTabla (ID, Campo1, Campo2) VALUES(111, 'Valor 1', 'Valor 2')

Notar que los valores asignados al identity son siempre progresivos.


saludos,

Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com

Preguntas similare

Leer las respuestas

#1 Isaias
26/07/2006 - 00:20 | Informe spam
¿Y si fueran UN MILLON DE REGISTROS?, los vas a teclear, uno por uno?
Saludos
IIslas


"Antonio Ortiz" wrote:

Hace tiempo pregunte como asignar un indentity al insertar un registro, algo
que es posible hacer con Access. Mi necesidad era la de importar datos de
una base de datos con estructura similar sin perder las referencias
correctas a las respectivas llaves primarias (Identity). La respuesta del
foro fue que no se puede, pero despues de indagar un tiempo encontre que si
se puede!, aqui esta la solucion:

SET IDENTITY_INSERT bd.dbo.MiTabla ON
Insert Into MiTabla (ID, Campo1, Campo2) VALUES(100, 'Valor 1', 'Valor 2')
Insert Into MiTabla (ID, Campo1, Campo2) VALUES(110, 'Valor 1', 'Valor 2')
Insert Into MiTabla (ID, Campo1, Campo2) VALUES(111, 'Valor 1', 'Valor 2')

Notar que los valores asignados al identity son siempre progresivos.


saludos,

Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com



Respuesta Responder a este mensaje
#2 Antonio Ortiz
26/07/2006 - 00:28 | Informe spam
No, eso solamente fue un ejemplo, tengo una rutina que importa toda una base
de datos. Y si, ejecutaria 1 millon de sentencias INSERT, lo cual no es
problema pues solo se haria una vez al iniciar la operacion del sistema.


Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com



"Isaias" escribió en el mensaje
news:
¿Y si fueran UN MILLON DE REGISTROS?, los vas a teclear, uno por uno?
Saludos
IIslas


"Antonio Ortiz" wrote:

Hace tiempo pregunte como asignar un indentity al insertar un registro,
algo
que es posible hacer con Access. Mi necesidad era la de importar datos de
una base de datos con estructura similar sin perder las referencias
correctas a las respectivas llaves primarias (Identity). La respuesta del
foro fue que no se puede, pero despues de indagar un tiempo encontre que
si
se puede!, aqui esta la solucion:

SET IDENTITY_INSERT bd.dbo.MiTabla ON
Insert Into MiTabla (ID, Campo1, Campo2) VALUES(100, 'Valor 1', 'Valor
2')
Insert Into MiTabla (ID, Campo1, Campo2) VALUES(110, 'Valor 1', 'Valor
2')
Insert Into MiTabla (ID, Campo1, Campo2) VALUES(111, 'Valor 1', 'Valor
2')

Notar que los valores asignados al identity son siempre progresivos.


saludos,

Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com



Respuesta Responder a este mensaje
#3 Isaias
26/07/2006 - 00:55 | Informe spam
Antonio

Me fui con el ejemplo, entonces, debo entender que el INSERT lo haras
ejecutando un SELECT de otra tabla, ¿Que caso tiene definir entonces tu campo
IDENTITY?

Digo, simpre lo vas a "APAGAR", a menos, que despues le dieras un uso (que
no veo cual sea).
Saludos
IIslas


"Antonio Ortiz" wrote:


No, eso solamente fue un ejemplo, tengo una rutina que importa toda una base
de datos. Y si, ejecutaria 1 millon de sentencias INSERT, lo cual no es
problema pues solo se haria una vez al iniciar la operacion del sistema.


Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com



"Isaias" escribió en el mensaje
news:
> ¿Y si fueran UN MILLON DE REGISTROS?, los vas a teclear, uno por uno?
> Saludos
> IIslas
>
>
> "Antonio Ortiz" wrote:
>
>> Hace tiempo pregunte como asignar un indentity al insertar un registro,
>> algo
>> que es posible hacer con Access. Mi necesidad era la de importar datos de
>> una base de datos con estructura similar sin perder las referencias
>> correctas a las respectivas llaves primarias (Identity). La respuesta del
>> foro fue que no se puede, pero despues de indagar un tiempo encontre que
>> si
>> se puede!, aqui esta la solucion:
>>
>> SET IDENTITY_INSERT bd.dbo.MiTabla ON
>> Insert Into MiTabla (ID, Campo1, Campo2) VALUES(100, 'Valor 1', 'Valor
>> 2')
>> Insert Into MiTabla (ID, Campo1, Campo2) VALUES(110, 'Valor 1', 'Valor
>> 2')
>> Insert Into MiTabla (ID, Campo1, Campo2) VALUES(111, 'Valor 1', 'Valor
>> 2')
>>
>> Notar que los valores asignados al identity son siempre progresivos.
>>
>>
>> saludos,
>>
>> Antonio Ortiz
>> asesor en sistemas
>> ant(a)aortiz.net
>> www.aortiz.net
>> www.progvisual.com
>>
>>
>>



Respuesta Responder a este mensaje
#4 Antonio Ortiz
26/07/2006 - 01:21 | Informe spam
La utilidad hace mas o menos lo siguiente:

1) Aplicacion anterior con tecnologia vieja, BD SQL 7
2) Aplicacion Nueva con BD SQL 2000 y estructura similar

.Proceso: Importar de BD1 a BD2 todos los datos, los identity se asignan al
agregar cada registro.
.Aplicacion Nueva: Posteriormente el sistema nuevo no asignara los Identity,
se generan 'automaticamente' al agregar datos en cada proceso.
-Se trata de una aplicacion comercial con cientas de instalaciones, asi que
esto se hace con un simple clic de un boton.


saludos,

Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com



"Isaias" escribió en el mensaje
news:
Antonio

Me fui con el ejemplo, entonces, debo entender que el INSERT lo haras
ejecutando un SELECT de otra tabla, ¿Que caso tiene definir entonces tu
campo
IDENTITY?

Digo, simpre lo vas a "APAGAR", a menos, que despues le dieras un uso (que
no veo cual sea).
Saludos
IIslas


"Antonio Ortiz" wrote:


No, eso solamente fue un ejemplo, tengo una rutina que importa toda una
base
de datos. Y si, ejecutaria 1 millon de sentencias INSERT, lo cual no es
problema pues solo se haria una vez al iniciar la operacion del sistema.


Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com



"Isaias" escribió en el mensaje
news:
> ¿Y si fueran UN MILLON DE REGISTROS?, los vas a teclear, uno por uno?
> Saludos
> IIslas
>
>
> "Antonio Ortiz" wrote:
>
>> Hace tiempo pregunte como asignar un indentity al insertar un
>> registro,
>> algo
>> que es posible hacer con Access. Mi necesidad era la de importar datos
>> de
>> una base de datos con estructura similar sin perder las referencias
>> correctas a las respectivas llaves primarias (Identity). La respuesta
>> del
>> foro fue que no se puede, pero despues de indagar un tiempo encontre
>> que
>> si
>> se puede!, aqui esta la solucion:
>>
>> SET IDENTITY_INSERT bd.dbo.MiTabla ON
>> Insert Into MiTabla (ID, Campo1, Campo2) VALUES(100, 'Valor 1', 'Valor
>> 2')
>> Insert Into MiTabla (ID, Campo1, Campo2) VALUES(110, 'Valor 1', 'Valor
>> 2')
>> Insert Into MiTabla (ID, Campo1, Campo2) VALUES(111, 'Valor 1', 'Valor
>> 2')
>>
>> Notar que los valores asignados al identity son siempre progresivos.
>>
>>
>> saludos,
>>
>> Antonio Ortiz
>> asesor en sistemas
>> ant(a)aortiz.net
>> www.aortiz.net
>> www.progvisual.com
>>
>>
>>



Respuesta Responder a este mensaje
#5 solusoft
26/07/2006 - 11:29 | Informe spam
Puedes aportar parte del script ? No me aclaro con el objetivo final

Si es identity no hay que incluir el código en el insert, se autogenera, no?

"Antonio Ortiz" escribió:


La utilidad hace mas o menos lo siguiente:

1) Aplicacion anterior con tecnologia vieja, BD SQL 7
2) Aplicacion Nueva con BD SQL 2000 y estructura similar

..Proceso: Importar de BD1 a BD2 todos los datos, los identity se asignan al
agregar cada registro.
..Aplicacion Nueva: Posteriormente el sistema nuevo no asignara los Identity,
se generan 'automaticamente' al agregar datos en cada proceso.
-Se trata de una aplicacion comercial con cientas de instalaciones, asi que
esto se hace con un simple clic de un boton.


saludos,

Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com



"Isaias" escribió en el mensaje
news:
> Antonio
>
> Me fui con el ejemplo, entonces, debo entender que el INSERT lo haras
> ejecutando un SELECT de otra tabla, ¿Que caso tiene definir entonces tu
> campo
> IDENTITY?
>
> Digo, simpre lo vas a "APAGAR", a menos, que despues le dieras un uso (que
> no veo cual sea).
> Saludos
> IIslas
>
>
> "Antonio Ortiz" wrote:
>
>>
>> No, eso solamente fue un ejemplo, tengo una rutina que importa toda una
>> base
>> de datos. Y si, ejecutaria 1 millon de sentencias INSERT, lo cual no es
>> problema pues solo se haria una vez al iniciar la operacion del sistema.
>>
>>
>> Antonio Ortiz
>> asesor en sistemas
>> ant(a)aortiz.net
>> www.aortiz.net
>> www.progvisual.com
>>
>>
>>
>> "Isaias" escribió en el mensaje
>> news:
>> > ¿Y si fueran UN MILLON DE REGISTROS?, los vas a teclear, uno por uno?
>> > Saludos
>> > IIslas
>> >
>> >
>> > "Antonio Ortiz" wrote:
>> >
>> >> Hace tiempo pregunte como asignar un indentity al insertar un
>> >> registro,
>> >> algo
>> >> que es posible hacer con Access. Mi necesidad era la de importar datos
>> >> de
>> >> una base de datos con estructura similar sin perder las referencias
>> >> correctas a las respectivas llaves primarias (Identity). La respuesta
>> >> del
>> >> foro fue que no se puede, pero despues de indagar un tiempo encontre
>> >> que
>> >> si
>> >> se puede!, aqui esta la solucion:
>> >>
>> >> SET IDENTITY_INSERT bd.dbo.MiTabla ON
>> >> Insert Into MiTabla (ID, Campo1, Campo2) VALUES(100, 'Valor 1', 'Valor
>> >> 2')
>> >> Insert Into MiTabla (ID, Campo1, Campo2) VALUES(110, 'Valor 1', 'Valor
>> >> 2')
>> >> Insert Into MiTabla (ID, Campo1, Campo2) VALUES(111, 'Valor 1', 'Valor
>> >> 2')
>> >>
>> >> Notar que los valores asignados al identity son siempre progresivos.
>> >>
>> >>
>> >> saludos,
>> >>
>> >> Antonio Ortiz
>> >> asesor en sistemas
>> >> ant(a)aortiz.net
>> >> www.aortiz.net
>> >> www.progvisual.com
>> >>
>> >>
>> >>
>>
>>
>>



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