Hola Oscar, y cual es la ventaja de tener un solo sp? ocupar  menos
espacio?, si queres generalizar este tipo de cosas  vas a terminar
haciendo sql dinamico (sp_executesql) o bien if dentro del sp.
Cualquiera de los dos metodos no ayudan a la performance y el primero
atenta contra uno de los objetivos de los Stores que es la seguridad,
si eso no te importa entonces dale para adelante.

Ahora bien, a mi no me preocuparia tener mas de un sp ya que hacen
cosas totalmente distintas, pero bueno esa es mi recomendacion nomas

El día 11 de enero de 2009 15:30, Oscar Onorato
<[email protected]> escribió:
> Hola lista!
>
> Tengo, hasta el momento, 3 SP's similares que sólo cambian en:
>
> 1. El nombre del SP
> 2. El nombre del parámetro de entrada (es sólo uno en los 3 casos)
> 3. Los nombres de los campos a consultar
> 4. La cantidad de campos a consultar
> 5. El nombre de la tabla a consultar
>
> En los 3 SP's los 5 púntos son una constante, y creo que debo tener más
> similares. Pero por ahora son estas las similares.
> La pregunta es ¿tengo forma de hacer una parametrización de este tipo de
> consultas para llevarlas a un sólo SP o UDF con parámetros genéricos?
>
> La idea es usar sólo objeto de la BD (SP's o UDF's) para realizar el mismo
> tipo de consulta. Sin recurrir al CLR. O qué opciones tengo para no andar
> reescribiendo lo mismo tipo de consulta con distintos nombre/s.
> En realidad estoy pensando estas consultas como un sólo método que acepta
> varios parámetros. En realidad todos aquellos necesarios para no andar
> reescribiendo sólo para hacer referencia a nombres distintos y/o cantidades
> de campos.
> Como veran la estructura de las consultas es la misma.
>
> Estos son los SP's de los que hablo:
>
> CREATE PROCEDURE GetDepartmentDetails
> (@DepartmentID INT)
> AS
> SELECT Name, Description
> FROM Department
> WHERE DepartmentID = @DepartmentID
> CREATE PROCEDURE GetCategoryDetails
> (@CategoryID INT)
> AS
> SELECT DepartmentID, Name, Description
> FROM Category
> WHERE CategoryID = @CategoryID
> CREATE PROCEDURE GetProductDetails
> (@ProductID INT)
> AS
> SELECT Name, Description, Price, Image1FileName, Image2FileName,
> OnDepartmentPromotion, OnCatalogPromotion
> FROM Product
> WHERE ProductID = @ProductID
>
>
> Gracias



-- 
-----------------------------------------------------------
Microsoft MVP en SQL Server
Consultor en SQLTotalConsulting
Excelencia en servicios y consultoria  SQLServer
www.sqltotalconsulting.com
-----------------------------------------------------------

Responder a