parametro opcional en stored

01/06/2008 - 19:41 por Jordi | Informe spam
Hola,
Es posible crear un parametro opcional? en un stored y que use un valor
por defecto?

Por ejemplo:
@CodigoPedido varchar(25) = '' Ya lo inicio en blanco...
...pero yo llamo al stored desde vb.net y si no paso el parametro da
error!
Existe la manera de hacerlo "opcional" y si no lo uso que se le asigne
el valor por defecto?

gracias

Jordi
 

Leer las respuestas

#1 Alejandro Mesa
01/06/2008 - 22:16 | Informe spam
Jordi,

Si, asignandole un valor en la declaracion y omitiendo el parametro en la
llamada de el procedimiento.

create procedure dbo.usp_p1
@p1 int = 4
as
set nocount on

select @p1 as c1

return @@error
go

exec dbo.usp_p1
go

exec dbo.usp_p1 17
go

exec dbo.usp_p1 @p1 = 23
go

drop procedure dbo.usp_p1
go


Ahora, desde tu aplicacion vb.net, vas a adicionar el parametro a la
coleccion SqlCommand.parameters, solo cuando desees pasarle un valor, si
adicionas el pararametro a la coleccion, entonces debes pasarle valor aunque
sea DBNull.

Para el caso de ADO, existe una propiedad de el objeto command, que se llama
NamedParameters y que debes prenderla o asignarle True para que la llamada de
el stored procedure se haga usando parametros nombrados y no por la posicion
de el parametro. Una vez = True, entonces adicionas el parametro a la
coleccion solo cuando desees pasarle valor.

exec dbo.usp_p1 4

exec dbo.usp_p1 @p1 = 4


AMB

"Jordi" wrote:

Hola,
Es posible crear un parametro opcional? en un stored y que use un valor
por defecto?

Por ejemplo:
@CodigoPedido varchar(25) = '' Ya lo inicio en blanco...
...pero yo llamo al stored desde vb.net y si no paso el parametro da
error!
Existe la manera de hacerlo "opcional" y si no lo uso que se le asigne
el valor por defecto?

gracias

Jordi



Preguntas similares