Corregir el excaso comportamiento de los identy.

10/09/2004 - 09:35 por Jose Antonio | Informe spam
En una tabla, necesito que se numeren automaticamente una serie de filas
dependiendo de una columna en concreto, me explico.

Tengo la columna CLAVE y la columna IDENTY.
La numeracion de IDENTY depende de la columna CLAVE de esta manera:

CLAVE IDENTY

Rojo 1
Rojo 2
Rojo 3
Azul 1
Azul 2
Verde 1
Verde 2
Verde 3

Como los identy de SQL Server no admiten este comportamiento, necesito
hacerlo manualmente de la forma

declare @max int
select @max=isnull(max(identy)+1,1) from tabla where clave='Rojo'
insert tabla values('Rojo',@max)

el problema surge cuando necesito realizar una insercion multiple que
proviene de un select, algo asi

insert tabla select clave,(aqui debiera de estar la instruccion de numerar
el identy) from otra tabla

no encuentro la forma de hacerlo.

¿Alguien se ha encontrado con este problema alguna vez?

Saludos y gracias.

Preguntas similare

Leer las respuestas

#11 Jose Antonio
14/09/2004 - 15:56 | Informe spam
He leido el articulo de Maxi, esto funciona perfectamente cuando se inserta
solo una fila, pero no veo la utilidad si se realiza un insert select
. que inserta varias filas a la vez.

¿Estoy equivocado?

Saludos.


"Salvador Ramos" escribió en el
mensaje news:uk$
Aquí te paso otra URL interesante, es más creo que se corresponde al mismo
artículo.
http://www.microsoft.com/spanish/ms...art187.asp

Maxi, nos puedes confirmar si también lo publicaste en portalsql ?

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Salvador Ramos" escribió en el
mensaje news:
> Pues lo he estado buscando y tampoco lo veo :-(
> Pero estoy seguro de que he leído allí el artículo. A ver si Miguel Egea


o
> algún otro compañero puede indicar la URL exacta.
>
> Un saludo
> Salvador Ramos
> Murcia - España
> [Microsoft MVP SQL Server]
> www.helpdna.net
> ¿Te interesa participar en las reuniones
> del grupo de Usuarios de SQL-Server y .NET
> Se harán en levante de España, (Alicante o Murcia)?
>
> "Jose Antonio" escribió en el mensaje
> news:
> > No lo consigo encontrar, ¿Sabes que articulo es?.
> >
> > Gracias
> > "Salvador Ramos" escribió en el
> > mensaje news:%
> > > Hola:
> > >
> > > En www.portalsql.com tienes un artículo muy interesante sobre el


tema,
> con
> > > código fuente, problemas y soluciones a este tipo de


implementaciones.
> > >
> > > Un saludo
> > > Salvador Ramos
> > > Murcia - España
> > > [Microsoft MVP SQL Server]
> > > www.helpdna.net
> > > ¿Te interesa participar en las reuniones
> > > del grupo de Usuarios de SQL-Server y .NET
> > > Se harán en levante de España, (Alicante o Murcia)?
> > >
> > > "Jose Antonio" escribió en el mensaje
> > > news:%
> > > > En una tabla, necesito que se numeren automaticamente una serie de
> filas
> > > > dependiendo de una columna en concreto, me explico.
> > > >
> > > > Tengo la columna CLAVE y la columna IDENTY.
> > > > La numeracion de IDENTY depende de la columna CLAVE de esta


manera:
> > > >
> > > > CLAVE IDENTY
> > > >
> > > > Rojo 1
> > > > Rojo 2
> > > > Rojo 3
> > > > Azul 1
> > > > Azul 2
> > > > Verde 1
> > > > Verde 2
> > > > Verde 3
> > > >
> > > > Como los identy de SQL Server no admiten este comportamiento,
necesito
>
> > > > hacerlo manualmente de la forma
> > > >
> > > > declare @max int
> > > > select @max=isnull(max(identy)+1,1) from tabla where clave='Rojo'
> > > > insert tabla values('Rojo',@max)
> > > >
> > > > el problema surge cuando necesito realizar una insercion multiple
que
> > > > proviene de un select, algo asi
> > > >
> > > > insert tabla select clave,(aqui debiera de estar la instruccion de
> > numerar
> > > > el identy) from otra tabla
> > > >
> > > > no encuentro la forma de hacerlo.
> > > >
> > > > ¿Alguien se ha encontrado con este problema alguna vez?
> > > >
> > > > Saludos y gracias.
> > > >
> > > >
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#12 Maxi
14/09/2004 - 15:57 | Informe spam
Hola, no lo he publicado en Portal :(, la idea del articulo es no usar
identities para la generacion de numeros, pero lo que el amigo busca es otra
cosa cre, porque necesita hacer un insert con varios registros por alguna
razon


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Salvador Ramos" escribió en el
mensaje news:uk$
Aquí te paso otra URL interesante, es más creo que se corresponde al mismo
artículo.
http://www.microsoft.com/spanish/ms...art187.asp

Maxi, nos puedes confirmar si también lo publicaste en portalsql ?

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Salvador Ramos" escribió en el
mensaje news:
> Pues lo he estado buscando y tampoco lo veo :-(
> Pero estoy seguro de que he leído allí el artículo. A ver si Miguel Egea


o
> algún otro compañero puede indicar la URL exacta.
>
> Un saludo
> Salvador Ramos
> Murcia - España
> [Microsoft MVP SQL Server]
> www.helpdna.net
> ¿Te interesa participar en las reuniones
> del grupo de Usuarios de SQL-Server y .NET
> Se harán en levante de España, (Alicante o Murcia)?
>
> "Jose Antonio" escribió en el mensaje
> news:
> > No lo consigo encontrar, ¿Sabes que articulo es?.
> >
> > Gracias
> > "Salvador Ramos" escribió en el
> > mensaje news:%
> > > Hola:
> > >
> > > En www.portalsql.com tienes un artículo muy interesante sobre el


tema,
> con
> > > código fuente, problemas y soluciones a este tipo de


implementaciones.
> > >
> > > Un saludo
> > > Salvador Ramos
> > > Murcia - España
> > > [Microsoft MVP SQL Server]
> > > www.helpdna.net
> > > ¿Te interesa participar en las reuniones
> > > del grupo de Usuarios de SQL-Server y .NET
> > > Se harán en levante de España, (Alicante o Murcia)?
> > >
> > > "Jose Antonio" escribió en el mensaje
> > > news:%
> > > > En una tabla, necesito que se numeren automaticamente una serie de
> filas
> > > > dependiendo de una columna en concreto, me explico.
> > > >
> > > > Tengo la columna CLAVE y la columna IDENTY.
> > > > La numeracion de IDENTY depende de la columna CLAVE de esta


manera:
> > > >
> > > > CLAVE IDENTY
> > > >
> > > > Rojo 1
> > > > Rojo 2
> > > > Rojo 3
> > > > Azul 1
> > > > Azul 2
> > > > Verde 1
> > > > Verde 2
> > > > Verde 3
> > > >
> > > > Como los identy de SQL Server no admiten este comportamiento,
necesito
>
> > > > hacerlo manualmente de la forma
> > > >
> > > > declare @max int
> > > > select @max=isnull(max(identy)+1,1) from tabla where clave='Rojo'
> > > > insert tabla values('Rojo',@max)
> > > >
> > > > el problema surge cuando necesito realizar una insercion multiple
que
> > > > proviene de un select, algo asi
> > > >
> > > > insert tabla select clave,(aqui debiera de estar la instruccion de
> > numerar
> > > > el identy) from otra tabla
> > > >
> > > > no encuentro la forma de hacerlo.
> > > >
> > > > ¿Alguien se ha encontrado con este problema alguna vez?
> > > >
> > > > Saludos y gracias.
> > > >
> > > >
> > >
> > >
> >
> >
>
>







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.748 / Virus Database: 500 - Release Date: 01/09/2004
Respuesta Responder a este mensaje
#13 Maxi
14/09/2004 - 16:07 | Informe spam
Hola, a ver: contame un poco porque buscas ese funcionamiento y si eso debe
ser un valor que debe quedar guardado en la tabla o bien lo podemos usar
para una query, o sea: si es para una query lo unico que necesitamos es
numerar y eso se puede hacer sin mayores problemas, si lo debes meter en el
ID de la tabla contame cual es el criterio de hacerlo asi, porque vas a
tener valores repetidos a menos que uses como pk el identitie y el codigo de
articulo

Un abrazo


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Jose Antonio" escribió en el mensaje
news:%
En una tabla, necesito que se numeren automaticamente una serie de filas
dependiendo de una columna en concreto, me explico.

Tengo la columna CLAVE y la columna IDENTY.
La numeracion de IDENTY depende de la columna CLAVE de esta manera:

CLAVE IDENTY

Rojo 1
Rojo 2
Rojo 3
Azul 1
Azul 2
Verde 1
Verde 2
Verde 3

Como los identy de SQL Server no admiten este comportamiento, necesito
hacerlo manualmente de la forma

declare @max int
select @max=isnull(max(identy)+1,1) from tabla where clave='Rojo'
insert tabla values('Rojo',@max)

el problema surge cuando necesito realizar una insercion multiple que
proviene de un select, algo asi

insert tabla select clave,(aqui debiera de estar la instruccion de numerar
el identy) from otra tabla

no encuentro la forma de hacerlo.

¿Alguien se ha encontrado con este problema alguna vez?

Saludos y gracias.







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.748 / Virus Database: 500 - Release Date: 01/09/2004
Respuesta Responder a este mensaje
#14 Jose Antonio
14/09/2004 - 17:44 | Informe spam
Tengo la columna CLAVE y la columna IDENTY en la tabla RESERVA
La numeracion de IDENTY depende de la columna CLAVE y clave+identy es la
pk de la tabla.

Tengo otra tabla ORIGINAL con las columnas CLAVE,FECHA,DONATIVO,ETC en la
que los usuarios insertan continuamente filas, esta tabla no necesito
numerarla.

Lo que necesito no es un query, sino insertar estos datos en la tabla
RESERVA, de manera que numere paticularmente por cada clave diferente.

Cuando el usuario lo desea ejecuta un proceso que selecciona todas las
claves de la tabla ORIGINAL, para insertarlas en la tabla RESERVA.

El resultado de este select que contiene varias filas es el que tengo que
insertar en la tabla RESERVA, pero que siga la numeracion correspondiente a
cada clave en particular.

No se si me he explicado.

Saludos



"Maxi" escribió en el mensaje
news:%
Hola, a ver: contame un poco porque buscas ese funcionamiento y si eso


debe
ser un valor que debe quedar guardado en la tabla o bien lo podemos usar
para una query, o sea: si es para una query lo unico que necesitamos es
numerar y eso se puede hacer sin mayores problemas, si lo debes meter en


el
ID de la tabla contame cual es el criterio de hacerlo asi, porque vas a
tener valores repetidos a menos que uses como pk el identitie y el codigo


de
articulo

Un abrazo


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Jose Antonio" escribió en el mensaje
news:%
> En una tabla, necesito que se numeren automaticamente una serie de filas
> dependiendo de una columna en concreto, me explico.
>
> Tengo la columna CLAVE y la columna IDENTY.
> La numeracion de IDENTY depende de la columna CLAVE de esta manera:
>
> CLAVE IDENTY
>
> Rojo 1
> Rojo 2
> Rojo 3
> Azul 1
> Azul 2
> Verde 1
> Verde 2
> Verde 3
>
> Como los identy de SQL Server no admiten este comportamiento, necesito
> hacerlo manualmente de la forma
>
> declare @max int
> select @max=isnull(max(identy)+1,1) from tabla where clave='Rojo'
> insert tabla values('Rojo',@max)
>
> el problema surge cuando necesito realizar una insercion multiple que
> proviene de un select, algo asi
>
> insert tabla select clave,(aqui debiera de estar la instruccion de


numerar
> el identy) from otra tabla
>
> no encuentro la forma de hacerlo.
>
> ¿Alguien se ha encontrado con este problema alguna vez?
>
> Saludos y gracias.
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.748 / Virus Database: 500 - Release Date: 01/09/2004


Respuesta Responder a este mensaje
#15 Salvador Ramos
14/09/2004 - 18:31 | Informe spam
Estás en lo cierto, perdona, no entendí bien la idea.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Jose Antonio" escribió en el mensaje
news:%
He leido el articulo de Maxi, esto funciona perfectamente cuando se


inserta
solo una fila, pero no veo la utilidad si se realiza un insert select
. que inserta varias filas a la vez.

¿Estoy equivocado?

Saludos.


"Salvador Ramos" escribió en el
mensaje news:uk$
> Aquí te paso otra URL interesante, es más creo que se corresponde al


mismo
> artículo.
>


http://www.microsoft.com/spanish/ms...art187.asp
>
> Maxi, nos puedes confirmar si también lo publicaste en portalsql ?
>
> Un saludo
> Salvador Ramos
> Murcia - España
> [Microsoft MVP SQL Server]
> www.helpdna.net
> ¿Te interesa participar en las reuniones
> del grupo de Usuarios de SQL-Server y .NET
> Se harán en levante de España, (Alicante o Murcia)?
>
> "Salvador Ramos" escribió en el
> mensaje news:
> > Pues lo he estado buscando y tampoco lo veo :-(
> > Pero estoy seguro de que he leído allí el artículo. A ver si Miguel


Egea
o
> > algún otro compañero puede indicar la URL exacta.
> >
> > Un saludo
> > Salvador Ramos
> > Murcia - España
> > [Microsoft MVP SQL Server]
> > www.helpdna.net
> > ¿Te interesa participar en las reuniones
> > del grupo de Usuarios de SQL-Server y .NET
> > Se harán en levante de España, (Alicante o Murcia)?
> >
> > "Jose Antonio" escribió en el mensaje
> > news:
> > > No lo consigo encontrar, ¿Sabes que articulo es?.
> > >
> > > Gracias
> > > "Salvador Ramos" escribió en


el
> > > mensaje news:%
> > > > Hola:
> > > >
> > > > En www.portalsql.com tienes un artículo muy interesante sobre el
tema,
> > con
> > > > código fuente, problemas y soluciones a este tipo de
implementaciones.
> > > >
> > > > Un saludo
> > > > Salvador Ramos
> > > > Murcia - España
> > > > [Microsoft MVP SQL Server]
> > > > www.helpdna.net
> > > > ¿Te interesa participar en las reuniones
> > > > del grupo de Usuarios de SQL-Server y .NET
> > > > Se harán en levante de España, (Alicante o Murcia)?
> > > >
> > > > "Jose Antonio" escribió en el mensaje
> > > > news:%
> > > > > En una tabla, necesito que se numeren automaticamente una serie


de
> > filas
> > > > > dependiendo de una columna en concreto, me explico.
> > > > >
> > > > > Tengo la columna CLAVE y la columna IDENTY.
> > > > > La numeracion de IDENTY depende de la columna CLAVE de esta
manera:
> > > > >
> > > > > CLAVE IDENTY
> > > > >
> > > > > Rojo 1
> > > > > Rojo 2
> > > > > Rojo 3
> > > > > Azul 1
> > > > > Azul 2
> > > > > Verde 1
> > > > > Verde 2
> > > > > Verde 3
> > > > >
> > > > > Como los identy de SQL Server no admiten este comportamiento,
> necesito
> >
> > > > > hacerlo manualmente de la forma
> > > > >
> > > > > declare @max int
> > > > > select @max=isnull(max(identy)+1,1) from tabla where


clave='Rojo'
> > > > > insert tabla values('Rojo',@max)
> > > > >
> > > > > el problema surge cuando necesito realizar una insercion


multiple
> que
> > > > > proviene de un select, algo asi
> > > > >
> > > > > insert tabla select clave,(aqui debiera de estar la instruccion


de
> > > numerar
> > > > > el identy) from otra tabla
> > > > >
> > > > > no encuentro la forma de hacerlo.
> > > > >
> > > > > ¿Alguien se ha encontrado con este problema alguna vez?
> > > > >
> > > > > Saludos y gracias.
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>


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