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 -----------------------------------------------------------
