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
 

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$
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 similares