Procedimientos almacenados dinámicos

¿Cómo puedo crear procedimientos almacenados dinámicos, en los que pueda realizar consultas en que los parámetros puedan ser null?
En concreto, quiero que a través de un formulario se pueda consultar una tabla, rellenando todos los campos, sólo algunos, o ninguno (en cuyo caso se mostrarían todos los registros).
Hasta ahora, en la página asp que recogía los datos, construía una sentencia sql así:
<%
url=Request.Form("url")
tipo=request.form("tipo")
sql="select * from links"
primero=true
IF url<>"" then
sql=sql& " WHERE url like='%" &url& "%'"
primero=false
END IF
IF tipo<>"" then
IF primero THEN
sql=sql& " WHERE url like='%" &url& "%'"
ELSE
sql=sql& " AND tipo =" &tipo
END IF
END IF
%>
¿Es posible hacer algo así con stored procedures?
Respuesta
1
El sp puede ser de esta forma, las variables @url y @tipo en caso de no ser nulas deben de tener el "%" adicionado. Si no debes pasarlos con nulo.
create procedure sp_prueba
@url varchar(255),
@tipo varchar(255)
select * from links
where tipo like isnull(@tipo,tipo) and
Url like isnull(@url,url)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas