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

#6 Liliana Sorrentino
14/09/2004 - 13:08 | Informe spam
Como estás hablando de inserción masiva, imagino que es a través de un DTS o
Bulk Insert por ejemplo. En ese caso, no conozco la manera de hacer ambas
cosas al mismo tiempo, por eso el ejemplo de una inserción con la
modificación posterior para numerar, será muchísimo más rápido que usar
cursores, eso sin duda.
Un solo comentario sobre este ejemplo. Siempre numera TODOS los registros,
los que estaban y los que agregan, habría que hacer una pequeña modificación
para que fuera solo para los nuevos.
Si al decir inserción masiva, te referís a otra forma de la que yo imagino,
entonces contanos cómo y vemos la forma.
Saludos,
Liliana.

"Jose Antonio" escribió en el mensaje
news:
Liliana, tue ejemplo funciona perfectamente, pero no encuentro la manera


de
adaptarlo a una insercion, ya que tu haces un update despues de insertar


las
filas, lo bueno seria que numerase a la vez que se insertan las filas.

Saludos.

"Liliana Sorrentino" escribió en el


mensaje
news:
> Hola,
> Parece que Miguel no ha visto este guante lanzado, así que me permito
> responderte con algo basado en lo que posteó hace un tiempo.
> Espero que te sirva,
> Liliana.
>
> CREATE TABLE #test
> (Clave char(10),
> Identy smallint null)
>
> INSERT #test SELECT 'Rojo', null
> INSERT #test SELECT 'Rojo', null
> INSERT #test SELECT 'Rojo', null
> INSERT #test SELECT 'Azul', null
> INSERT #test SELECT 'Azul', null
> INSERT #test SELECT 'Verde', null
> INSERT #test SELECT 'Verde', null
> INSERT #test SELECT 'Verde', null
> GO
>
> CREATE INDEX #test_index on #test (clave)
> GO
>
> SELECT * FROM #test
>
> DECLARE @identy int SET @identy=1
> DECLARE @clave char(10)
> UPDATE t
> SET @identy= CASE @clave WHEN clave THEN @identy +1 ELSE 1 END,
> @clave = clave, Identy = @identy
> FROM #test t (INDEX = #test_index)
>
> SELECT * FROM #test
>
> "Jose Antonio" escribió en el mensaje
> news:
> > Creo que la unica solucion es utilizar un cursor.
> > ¿Alguna idea de los anti-cursores?
> >
> >
> > "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
#7 Jose Antonio
14/09/2004 - 13:08 | Informe spam
Liliana, tue ejemplo funciona perfectamente, pero no encuentro la manera de
adaptarlo a una insercion, ya que tu haces un update despues de insertar las
filas, lo bueno seria que numerase a la vez que se insertan las filas.

Saludos.

"Liliana Sorrentino" escribió en el mensaje
news:
Hola,
Parece que Miguel no ha visto este guante lanzado, así que me permito
responderte con algo basado en lo que posteó hace un tiempo.
Espero que te sirva,
Liliana.

CREATE TABLE #test
(Clave char(10),
Identy smallint null)

INSERT #test SELECT 'Rojo', null
INSERT #test SELECT 'Rojo', null
INSERT #test SELECT 'Rojo', null
INSERT #test SELECT 'Azul', null
INSERT #test SELECT 'Azul', null
INSERT #test SELECT 'Verde', null
INSERT #test SELECT 'Verde', null
INSERT #test SELECT 'Verde', null
GO

CREATE INDEX #test_index on #test (clave)
GO

SELECT * FROM #test

DECLARE @identy int SET @identy=1
DECLARE @clave char(10)
UPDATE t
SET @identy= CASE @clave WHEN clave THEN @identy +1 ELSE 1 END,
@clave = clave, Identy = @identy
FROM #test t (INDEX = #test_index)

SELECT * FROM #test

"Jose Antonio" escribió en el mensaje
news:
> Creo que la unica solucion es utilizar un cursor.
> ¿Alguna idea de los anti-cursores?
>
>
> "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
#8 Salvador Ramos
14/09/2004 - 13:19 | Informe spam
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
#9 Jose Antonio
14/09/2004 - 13:40 | Informe spam
Quizas me he pasado con la palabra "masiva", solo se insertan las filas que
puede haber en un documento que pueden ser 10 Rojos, 6 Azules, 4 Amarillos,
etc el maximo puede llegar a ser unas 200 filas mas o menos, que esta en una
tabla sin numerar, y que un trigger se tiene que encargar de insertar en
otra tabla que si hay que numerar a partir de la tabla inserted que es la
que contendra las 200 filas.

No se si me he explicado.

Gracias.
.

"Liliana Sorrentino" escribió en el mensaje
news:%
Como estás hablando de inserción masiva, imagino que es a través de un DTS


o
Bulk Insert por ejemplo. En ese caso, no conozco la manera de hacer ambas
cosas al mismo tiempo, por eso el ejemplo de una inserción con la
modificación posterior para numerar, será muchísimo más rápido que usar
cursores, eso sin duda.
Un solo comentario sobre este ejemplo. Siempre numera TODOS los registros,
los que estaban y los que agregan, habría que hacer una pequeña


modificación
para que fuera solo para los nuevos.
Si al decir inserción masiva, te referís a otra forma de la que yo


imagino,
entonces contanos cómo y vemos la forma.
Saludos,
Liliana.

"Jose Antonio" escribió en el mensaje
news:
> Liliana, tue ejemplo funciona perfectamente, pero no encuentro la manera
de
> adaptarlo a una insercion, ya que tu haces un update despues de insertar
las
> filas, lo bueno seria que numerase a la vez que se insertan las filas.
>
> Saludos.
>
> "Liliana Sorrentino" escribió en el
mensaje
> news:
> > Hola,
> > Parece que Miguel no ha visto este guante lanzado, así que me permito
> > responderte con algo basado en lo que posteó hace un tiempo.
> > Espero que te sirva,
> > Liliana.
> >
> > CREATE TABLE #test
> > (Clave char(10),
> > Identy smallint null)
> >
> > INSERT #test SELECT 'Rojo', null
> > INSERT #test SELECT 'Rojo', null
> > INSERT #test SELECT 'Rojo', null
> > INSERT #test SELECT 'Azul', null
> > INSERT #test SELECT 'Azul', null
> > INSERT #test SELECT 'Verde', null
> > INSERT #test SELECT 'Verde', null
> > INSERT #test SELECT 'Verde', null
> > GO
> >
> > CREATE INDEX #test_index on #test (clave)
> > GO
> >
> > SELECT * FROM #test
> >
> > DECLARE @identy int SET @identy=1
> > DECLARE @clave char(10)
> > UPDATE t
> > SET @identy= CASE @clave WHEN clave THEN @identy +1 ELSE 1 END,
> > @clave = clave, Identy = @identy
> > FROM #test t (INDEX = #test_index)
> >
> > SELECT * FROM #test
> >
> > "Jose Antonio" escribió en el mensaje
> > news:
> > > Creo que la unica solucion es utilizar un cursor.
> > > ¿Alguna idea de los anti-cursores?
> > >
> > >
> > > "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
#10 Liliana Sorrentino
14/09/2004 - 13:56 | Informe spam
Bien, entonces sí te servirá el artículo de Maxi que te pasó Salvador, la
tabla con el último número utilizado para cada "color".
Liliana.

"Jose Antonio" escribió en el mensaje
news:
Quizas me he pasado con la palabra "masiva", solo se insertan las filas


que
puede haber en un documento que pueden ser 10 Rojos, 6 Azules, 4


Amarillos,
etc el maximo puede llegar a ser unas 200 filas mas o menos, que esta en


una
tabla sin numerar, y que un trigger se tiene que encargar de insertar en
otra tabla que si hay que numerar a partir de la tabla inserted que es la
que contendra las 200 filas.

No se si me he explicado.

Gracias.
.

"Liliana Sorrentino" escribió en el


mensaje
news:%
> Como estás hablando de inserción masiva, imagino que es a través de un


DTS
o
> Bulk Insert por ejemplo. En ese caso, no conozco la manera de hacer


ambas
> cosas al mismo tiempo, por eso el ejemplo de una inserción con la
> modificación posterior para numerar, será muchísimo más rápido que usar
> cursores, eso sin duda.
> Un solo comentario sobre este ejemplo. Siempre numera TODOS los


registros,
> los que estaban y los que agregan, habría que hacer una pequeña
modificación
> para que fuera solo para los nuevos.
> Si al decir inserción masiva, te referís a otra forma de la que yo
imagino,
> entonces contanos cómo y vemos la forma.
> Saludos,
> Liliana.
>
> "Jose Antonio" escribió en el mensaje
> news:
> > Liliana, tue ejemplo funciona perfectamente, pero no encuentro la


manera
> de
> > adaptarlo a una insercion, ya que tu haces un update despues de


insertar
> las
> > filas, lo bueno seria que numerase a la vez que se insertan las filas.
> >
> > Saludos.
> >
> > "Liliana Sorrentino" escribió en el
> mensaje
> > news:
> > > Hola,
> > > Parece que Miguel no ha visto este guante lanzado, así que me


permito
> > > responderte con algo basado en lo que posteó hace un tiempo.
> > > Espero que te sirva,
> > > Liliana.
> > >
> > > CREATE TABLE #test
> > > (Clave char(10),
> > > Identy smallint null)
> > >
> > > INSERT #test SELECT 'Rojo', null
> > > INSERT #test SELECT 'Rojo', null
> > > INSERT #test SELECT 'Rojo', null
> > > INSERT #test SELECT 'Azul', null
> > > INSERT #test SELECT 'Azul', null
> > > INSERT #test SELECT 'Verde', null
> > > INSERT #test SELECT 'Verde', null
> > > INSERT #test SELECT 'Verde', null
> > > GO
> > >
> > > CREATE INDEX #test_index on #test (clave)
> > > GO
> > >
> > > SELECT * FROM #test
> > >
> > > DECLARE @identy int SET @identy=1
> > > DECLARE @clave char(10)
> > > UPDATE t
> > > SET @identy= CASE @clave WHEN clave THEN @identy +1 ELSE 1 END,
> > > @clave = clave, Identy = @identy
> > > FROM #test t (INDEX = #test_index)
> > >
> > > SELECT * FROM #test
> > >
> > > "Jose Antonio" escribió en el mensaje
> > > news:
> > > > Creo que la unica solucion es utilizar un cursor.
> > > > ¿Alguna idea de los anti-cursores?
> > > >
> > > >
> > > > "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