Incrementar una variable en store

07/09/2004 - 16:18 por Ana | Informe spam
Hola Amigos tengo el siguiente Store Procedure y necesito
incrementar la variable @Id_Flag ya que el select devuelve
mas de un registro

-
Declare @Id_Flag int
Select @Id_Flag = Max(Id_Flag) From FlagsxId

INSERT INTO FlagsxId(Id_Flaf Precedencia, VinfHombre,
VsupHombre, VInfMujer, VSupMujer, Id_Denominacion)
SELECT @Id_Flag +1, Precedencia, VinfHombre, VsupHombre,
VInfMujer, VSupMujer,182 From FlagsxId
where Id_Denominacion „

Como puedo hacer?? porque asi como esta me genera todos
los registros que quiero insertar con el maximo mas 1
y yo quisiera que lo incremente en cada registro que
agrega...

Desde ya muchas Gracias

Ana

Preguntas similare

Leer las respuestas

#1 MAXI
07/09/2004 - 17:08 | Informe spam
Hola, yo lo intentaria hacer de otra forma eso: lo mejor seria tener una
tabla autonumeradora y generar en tu SCRIP eso.

Para ello te paso un ejemplo que es el que utilizo yo :-)

=
USE NORTHWIND

GO

IF OBJECT_ID('X_SP_FACTURAS_I') IS NOT NULL

DROP PROC X_SP_FACTURAS_I

GO

CREATE PROCEDURE X_SP_FACTURAS_I @IMPORTE FLOAT, @FECHA DATETIME,
@NUMERO_FACTURA INT OUTPUT AS

BEGIN TRAN

UPDATE NUMERADORES SET @NUMERO_FACTURA = ULTIMO_VALOR = ULTIMO_VALOR + 1
WHERE TABLA='FACTURAS'


IF @@ERROR <> 0

BEGIN

ROLLBACK TRAN

RETURN

END

INSERT INTO FACTURAS VALUES
(@NUMERO_FACTURA,CONVERT(CHAR(10),@FECHA,112),@IMPORTE)

IF @@ERROR <> 0

BEGIN

ROLLBACK TRAN

RETURN

END

COMMIT TRAN

GO

DECLARE @SALIDA INT

EXEC X_SP_FACTURAS_I @FECHA='20040101',@IMPORTE=1, @NUMERO_FACTURA=@SALIDA
OUTPUT


SELECT @SALIDA

==
Ahora, te esta haciendo que todos sean el maximo mas 1 porque le estas
haciendo un select completo a la tabla, esto es necesario?

Esto es como duplicar los registros, porque no me explicas que buscas mas en
detalle, puede ser?






Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)
Mail: Maxi_accotto[arroba]speedy.com.ar
Msn Messager:

"Ana" escribió en el mensaje
news:092301c494e5$8270f900$
Mostrar la cita
#2 Lázaro
07/09/2004 - 17:22 | Informe spam
Mira este artículo a ver si te da alguna pista:

http://www.microsoft.com/spanish/ms...art167.asp

Salu2

"Ana" wrote in message
news:092301c494e5$8270f900$
Mostrar la cita
#3 Ana
07/09/2004 - 17:48 | Informe spam
Bien!! Maxi ... voy a probar
espero con esoto solucionarlo

ocurre que el diseño de la tabla lo hizo otra persona y
que no se porque razon no definio esa tabla como
autornumerico..
Mostrar la cita
seria tener una
Mostrar la cita
DATETIME,
Mostrar la cita
ULTIMO_VALOR + 1
Mostrar la cita
@NUMERO_FACTURA=@SALIDA
Mostrar la cita
porque le estas
Mostrar la cita
explicas que buscas mas en
Mostrar la cita
el mensaje
Mostrar la cita
necesito
Mostrar la cita
devuelve
Mostrar la cita
#4 Anonimo
07/09/2004 - 17:52 | Informe spam
voy a probar!
Mostrar la cita
quizas
Mostrar la cita
VinfHombre, VsupHombre,
Mostrar la cita
Id_Denominacion „
Mostrar la cita
IDENTITY
Mostrar la cita
message
Mostrar la cita
necesito
Mostrar la cita
devuelve
Mostrar la cita
#5 Adrian D. Garcia
07/09/2004 - 21:11 | Informe spam
No se si esto funcionaria ya que no lo probe pero quizas

Declare @Id_Flag int
Select @Id_Flag = Max(Id_Flag) From FlagsxId

INSERT INTO FlagsxId(Id_Flaf Precedencia, VinfHombre,
VsupHombre, VInfMujer, VSupMujer, Id_Denominacion)
SELECT IDENTITY(int,@Id_Flag, 1) AS id, Precedencia, VinfHombre, VsupHombre,
VInfMujer, VSupMujer,182 From FlagsxId where Id_Denominacion „

Para mas informacion ve en los books online la funcion IDENTITY
Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Ana" wrote in message
news:092301c494e5$8270f900$
Mostrar la cita
Ads by Google
Search Busqueda sugerida