Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Store Procedure Multiple Funciones

Estas en el tema de Store Procedure Multiple Funciones en el foro de SQL Server en Foros del Web. Hola a todos bueno he aqui mi duda queria hacer un store procedure con multiples funciones (insert, update, delete) dependiendo de la variable que se ...
  #1 (permalink)  
Antiguo 16/02/2008, 07:45
 
Fecha de Ingreso: julio-2005
Mensajes: 7
Antigüedad: 18 años, 10 meses
Puntos: 0
Store Procedure Multiple Funciones

Hola a todos
bueno he aqui mi duda
queria hacer un store procedure con multiples funciones (insert, update, delete)
dependiendo de la variable que se necesite, sin embargo
como hago para que las variables no sean obligatioras?

create procedure SPXD
@tipo as char(5),
@var1 as char(5)
as ......

o sea digamos si la variable @tipo tiene valor de 'i' quiero que me reciba la variable @var1 de caso contrario no
alguien me da una manito ? saludos
  #2 (permalink)  
Antiguo 16/02/2008, 09:49
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 5 meses
Puntos: 6
Re: Store Procedure Multiple Funciones

Para hacer lo que quieres debes especificar valores por defecto a las variables en la cabecera del procedimiento, por ejemplo
Código:
Create Procedure Sp_XD
(
    @Tipo As Char(5),
    @Var1 As Char(5) = Null
)
As
    --Cuerpo de tu procedimiento
Go
Así, los parámetros que tengan un valor por defecto no serán obligatorios (Nota: Null puede cambiarse por cualquier valor, y este será el que tome si no le pasas un valor al parámetro.), y los que no lo tengan si deberán recibir un valor.

Ahora, para llamarlo te recomiendo que uses parametros referenciados por el nombre, por si tienes parámetros rqueridos y no requeridos revueltos en tu cabecera de procedimiento, ya que si no SQL no sabrá a que variable te refieres, y las pondra en orden de aparición.


saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:31.