Ver Mensaje Individual
  #7 (permalink)  
Antiguo 12/09/2006, 08:46
Avatar de Andres95
Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 20 años
Puntos: 38
Te anexo un ejemplillo, que utiliza la bd pubs que viene de ejemplo en SQL.
espero te sirva...
un saludo

Código:
USE PUBS
GO
-- Elimina si existe el procedimiento
If 0 < (Select count(1) From dbo.SysObjects where Id = Object_Id(N'[dbo].[SelectStores]') and ObjectProperty(Id, N'IsProcedure') = 1)
Drop Procedure [dbo].[SelectStores]
Go

-- Genera stored procedure
Create procedure dbo.SelectStores
   @stor_id char(4),
   @city    varchar(20),
   @state   char(2),
   @zip     char(5)
As

Select * 
From   stores 
Where  @stor_id = (case when @stor_id = '' Then @stor_id Else stor_id End) And
       @city    = (case when @city    = '' Then @city    Else city    End) And
       @state   = (case when @state   = '' Then @state   Else state   End) And
       @zip     = (case when @zip     = '' Then @zip     Else zip     End) 
GO
-------------------------------------------------------------------
-- Ejemplos de llamadas.
-------------------------------------------------------------------
Execute dbo.SelectStores '','','',''            -- No se aplicará ningun filtro
Execute dbo.SelectStores '6380','','',''        -- Se filtrará por stor_id
Execute dbo.SelectStores '','Seattle','',''     -- Se filtrará por city
Execute dbo.SelectStores '','','WA',''          -- Se filtrará por State
Execute dbo.SelectStores '','','','98056'       -- Se filtrará por Zip
Execute dbo.SelectStores '','Seattle','WA',''   -- Se filtrará por City and State  

-- y asi sucesivamente, solo se filtraran por los parametros que tengan valor.