SQL - Procedimientos almacenados anidados

 
Vista:

Procedimientos almacenados anidados

Publicado por Fernando (1 intervención) el 26/07/2002 17:46:27
Hola a todos:

Tengo un procedimiento almacenado que sirve para insertar un registro en una tabla de paises con dos campos (IdPais, Pais).
Hasta aca todo bien. Lo que me gustaria es poder hacer que IdPais reciba automaticamente el ultimo IdPais +1.
La instruccion para traer este valor lo se, lo que no se es como asignarselo en el procedure de manera que automaticamente lo incremente cuando agrego un nuevo pais en la tabla.
Creo que con esto bastara. Igualmente para poner la frutilla en la torta, si alguien sabe como puedo controlar en el mismo procedure el error de dos o mas usuarios agregando al mismo tiempo un registro

Gracias a todos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Procedimientos almacenados anidados

Publicado por EDELRIO (540 intervenciones) el 27/07/2002 00:30:28
Bueno si quiere agregarlo en el mismo Procedure puede poner lo siguiente y ademas con esto contesto la pregunta que hace debajo...

Declare @ValorMaximo Integer,
@ValorEntrante Integer

If Not Exists (Select * From TablaPaises Where IdPais = @ValorEntrante)
Begin
Select @ValorMaximo = IdPais + 1 From TablaPaises

Insert into TablaPaises Values (@ValorMaximo, 'DescripcionPais')
Select Resultado = 1
End
Else
Begin
Select Resultado = 0
End

El Resultado = 1 y 0 es lo que usted le mandara a su aplicacion como resultado osea el 1 es si no existia y el 0 es para que en la aplicacion despliegue el mensaje de id ya existente o algo asi....

Espero esto le sirva...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Procedimientos almacenados anidados

Publicado por Islas, Isaías (5072 intervenciones) el 27/07/2002 00:49:39
Hola

La verdad es que NO comprendo su duda, si usted desea ir NUMERANDO sus registros, declare su ID de pais como IDENTITY, si desea que le traiga el ultimo registro MAS UNO.

DECLARE @MyNumero int
SELECT @MyNumero = max(ID+1) FROM Pais
SELECT 'Este es mi ultimo número, mas uno', @MyNumero

Podria decirnos, donde es que entran los PROCEDIMIENTOS anidados.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar