Saludos a todos:
En esta ocacion mi problema es el siguiente, Tengo una fucion creada en Sql Server que funciona Correctamente, pero es muy lenta la ejecucion ya que el servidor ejecuta la sentencia sql que contiene la funcion y despues al resultado aplica el filtro.
Me explico:
Código SQL
[-]
Create Function Query1()
Returns @Reporte TABLE (
Campo1 Varchar(10),
Campo Varchar(10) )
AS
BEGIN
Insert @Reporte
SELECT Campo1,Campo2 FROM MiTabla
END
y esta funcion la llamo de esta forma
Código:
Select * From Query1() Where Campo1 = 'CONDICION'
Ok, Como les comentaba esta consulta es lenta por que la funcion orimero consulta todos los datos de la tabla y depues filtra el resultado, Intente pasa la clausula Where como parametro de la funcion pero me marco error,
Lo que hize fue esto:
Código SQL
[-]
Create Function Query1(@Where AS Varchar(255))
Returns @Reporte TABLE (
Campo1 Varchar(10),
Campo Varchar(10) )
AS
BEGIN
Insert @Reporte
SELECT Campo1,Campo2 FROM MiTabla
+@WHERE
END
y La llamada quedo como sigue:
Código:
Select * From Query1('Where Campo1 = '''CONDICION'')
Si alguien tiene una idea de cual pueda ser el error les agradesco de antemano sus Comentarios