FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Pasar como parametro el where en una funcion
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:
y esta funcion la llamo de esta forma Código:
Select * From Query1() Where Campo1 = 'CONDICION' Lo que hize fue esto:
y La llamada quedo como sigue: Código:
Select * From Query1('Where Campo1 = '''CONDICION'') |
#2
|
|||
|
|||
Pasa como parametro el where en una funcion
Hola
Sil dices que la funcion que creaste es muy lenta porque no pruebas con algo como esto: CREATE PROCEDURE MostrarBolsoJTurno @area int, @cadena nvarchar(4000) AS declare @SQLString nvarchar(4000) set @SQLString = 'SELECT dbo.Bolsos.id, dbo.Bolsos.cartaporte' + CHAR(13) set @SQLString = @SQLString + 'FROM dbo.Bolsos INNER JOIN dbo.Usuarios ON dbo.Bolsos.usuario = dbo.Usuarios.id' + CHAR(13) set @SQLString = @SQLString + 'WHERE ' + @cadena + CHAR(13) set @SQLString = @SQLString + 'Order by fecha, ruta' EXEC sp_executesql @SQLString GO Ojala te pueda servir Saludos Luis Garcia |
#3
|
||||
|
||||
mmm... mas o menos lo que se quiso decir en el anterior mensaje, segun lo que pude entender, es que puedes declarar la sentencia que quieres ejecutar como un string, que puedes construir dinamicamente en la funcion, y luego llamar sp_executesql para obtener los resultados.
__________________
Héctor Geraldino Software Engineer |
|
|
|