Código PHP:
set @condicion = " or campo3='"+@ui_grupo+"')";
...
INSERT @Plantillas
select campo1,campo2 from mi_tabla where campo3 <> 'X' @condicion
RETURN
| |||
Duda con Funcion de Sql Que tal, bueno, apenas me estoy metiendo a crear funciones en el sql server 2005, y no me va tan mal, solo que tengo un par de dudas que no he logrado resolver, quisiera armar un query según se cumpla una serie de condiciones, entonces hice algo como esto: Código PHP:
__________________ Wow! No se que decir... |
| |||
Respuesta: Duda con Funcion de Sql Que tal IISLAS, ya habia encontrado justo algo como lo que me pusiste de ejemplo, solo que ahora quise hacer: @una_variable = Execute sp_executesql @SQLString; Pero me marca error, no puedo pasar el resultado a una variable? bueno, y gracias por la respuesta del ejemplo, pero tambien tengo la duda, en Set @SQLWhere = 'cliente like '+'%torres%'+''' como estas concatenando? no entendi bien lo que haces ya que usas para todo la comilla siemple y no comprendo como cierras la cadena, sin embargo lo probe como lo tienes y no me marca error :S como funciona ? como io lo puse: set @condicion = " or campo3='"+@ui_grupo+"')"; si me marca error :S pero me confunde mas tu modo jeje
__________________ Wow! No se que decir... Última edición por zyon; 18/03/2009 a las 17:12 |
| ||||
Respuesta: Duda con Funcion de Sql Tuvo un pequeño error involuntario: Revisa QUERY DINAMICO, te pongo un ejemplo: Declare @MyTabla sysname Declare @SQLString nvarchar(100) Declare @SQLWhere nvarchar(50) Set @MyTabla = 'Cliente' Set @SQLWhere = 'cliente like '+'%torres%'+''' Set @SQLString = N'select * from '+@MyTabla+' Where ''+@SQLWhere -- Set @SQLString = @SQLString+@SQLWhere Execute sp_executesql @SQLString
__________________ Martín Alexis Valdivia S. ----------------------------- "Quisiéramos cambiar el mundo, pero Dios no nos daría el código fuente." CAP "Si Saber No Es Un Derecho, Seguro Será Un Izquierdo." WD |
| ||||
Respuesta: Duda con Funcion de Sql Muchas gracias por la correcion, amigo Thumper Zyon, hay una forma de regresar o ingrear variables en sp_executesql, te sugiero leas tu ayuda en linea. |
| |||
Respuesta: Duda con Funcion de Sql Bueno, no se como buscarlo, ya intente algo con OUTPUT pero no me funciona :S y tengo una Duda mayor, el Execute sp_executesql funciona en una Funcion de SQL? Sorry, pero no comprendo varias cositas de aqui, sobre todo eso del OUTPUT y ni se si es lo quenecesito y ademas para que el @variable = N'...' eso del 'N' que me indica? Que en la cadena existen variables?
__________________ Wow! No se que decir... Última edición por zyon; 19/03/2009 a las 12:06 |
| |||
Respuesta: Duda con Funcion de Sql He leido que solo las funciones y procedimientos extendidos se pueden utilizar entro de una función, si es cierto, habra otra manera de ejecutar un query dinamico?
__________________ Wow! No se que decir... |
| ||||
Respuesta: Duda con Funcion de Sql Cita: el sp_executesql te ejecuta una cadena de texto dentro del motor del sql server esto bien puede se insert update, select, ejecución de un store procedure, etc, cualquier código que vos decidas armar dinámicamente, ya sea que te devuelva datos o no.nos vemos..
__________________ * Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ Sitio http://www.geoavila.com twitter: @GeoAvila |
| |||
Respuesta: Duda con Funcion de Sql Halo GeoAvila sorry pero no comprendi tu comentario, te refieres a que no necesito el sp_executesql para ejecutar un query dinamico dentro de mi funcion?
__________________ Wow! No se que decir... |
| ||||
Respuesta: Duda con Funcion de Sql Cita: Claro que lo podes usar, es lo más dinámico que podes usar, pero tenes que muy cuidadoso porque el manejo de errores a ese nivel es algo clavadonos vemos.
__________________ * Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ Sitio http://www.geoavila.com twitter: @GeoAvila |
| |||
Respuesta: Duda con Funcion de Sql Bien, entonces io quise usar el Proc Almacenado para ejecutar el contenido de la cadena q era un query, pero antes de eso intente ejecutar un query armado con variables pero no pude :s, hice algo como set @condicion = N' or usuario='+'@ui_grupo+'''; set @numero = (select count(*) from usuarios where usuario='XXX' @condicion ); pero pues me marco error, fuera de eso busque como ejecutar un query sin usar la el PA y no econtre nada, podrias pasarme algun tip de busqueda al menos? una palabra o algo? me ayudaria mucho :(
__________________ Wow! No se que decir... |
| ||||
Respuesta: Duda con Funcion de Sql Puedes colocar el select que deseas que te resulte al final?? Me parece o deseas un select que en tome en algunos casos, todos, ninguno o algunos de los parametros que le envies.
__________________ Martín Alexis Valdivia S. ----------------------------- "Quisiéramos cambiar el mundo, pero Dios no nos daría el código fuente." CAP "Si Saber No Es Un Derecho, Seguro Será Un Izquierdo." WD |
| |||
Respuesta: Duda con Funcion de Sql Bueno, seria esto lo que armo : set @usuario = 'Josue'; set @condicion = N' or usuario='''+@ui_grupo+''''; set @query = N'select @aux=count(*) from doc_plantillas_seguridad_usr where usuario='''+@usuario+''' '+ @condicion; el de @aux lo usaba para ibtener el valor del count con el PA "sp_executesql" pero pues es lo que no se puede en la duncion, pero en si esto es uno de los querys que armo, el otro es un poco mayor pero la misma idea... Por cierto, ya pude hacer lo que quiero en un Procedieminto Almacenado, en si como lo hacia con el output y executesql si lo hacia bien, pero solo era q no sabia q en una funcion no me funcionaba eso jeje, de todos modos quiero saber como ejecuatr una cadena q contiene un query armado si no es molestia :S
__________________ Wow! No se que decir... |
| |||
Respuesta: Duda con Funcion de Sql ha el detalles es que según se , no se pued eusar el SP_EXECUTESQL dentro de una funcion :S como dije, ya pase todo lo de mi funcion a un Procedimiento Almacenado, pero me queda la duda de como ejecutar un query dinamico en una función, ya aprnedi a usar el SP_EXECUTESQL pero no un equivalente en una funcion :S Sorry por mi necesadad jeje
__________________ Wow! No se que decir... |