SoloCodigo

Bases de Datos => SQL Server => Mensaje iniciado por: ElNapster en Miércoles 31 de Enero de 2007, 23:53

Título: Querys Dinamicos
Publicado por: ElNapster en Miércoles 31 de Enero de 2007, 23:53
Que tal a todos , tengo una duda con respecto a los QUERYS DINAMICOS realmente en si no se como se trabajan , ustedes me podrian orientar un poco con respecto al tema, ya que he buscado en la web pero no tengo mayor informacion al respecto.... como seria el query (codigo) de un query dinamico .... :P , Gracias por la ayuda....
 :comp:
Título: Re: Querys Dinamicos
Publicado por: ccarras3010 en Lunes 23 de Abril de 2007, 01:36
Las querys dinamicas, corresponden a consultas que son almacenadas en una variables o tratadas como texto para su ejecución, ademas este tipo de consulta son compiladas en el momento de la ejecución, por ejemplo:

declare
@SQL varchar(300)

set @SQL = 'select * from tabla'

exec(@SQL)

este tipo de consultas requieren permiso del usuario de lectura hacia la tabla, a diferencia de de que esta misma consulta fuese ejecutada por un sp, en ese caso seria solo permiso del usuario a la ejecucion del sp.
También es posible agregar parametros para efectuar criterios sobre los campos de la consulta.

Cristián
Título: Re: Querys Dinamicos
Publicado por: lencho en Lunes 23 de Abril de 2007, 14:21
Cita de: "ccarras3010"
Las querys dinamicas, corresponden a consultas que son almacenadas en una variables o tratadas como texto para su ejecución, ademas este tipo de consulta son compiladas en el momento de la ejecución, por ejemplo:

declare
@SQL varchar(300)

set @SQL = 'select * from tabla'

exec(@SQL)

este tipo de consultas requieren permiso del usuario de lectura hacia la tabla, a diferencia de de que esta misma consulta fuese ejecutada por un sp, en ese caso seria solo permiso del usuario a la ejecucion del sp.
También es posible agregar parametros para efectuar criterios sobre los campos de la consulta.

Cristián
osea que Transact SQL es igual a Querys dinamicos ????
Por que esa es la sintaxis de codigo Transact.

BYTE.
Título: Re: Querys Dinamicos
Publicado por: trentia en Lunes 23 de Abril de 2007, 17:52
Transact SQL es el lenguaje de programación de .NET, es decir, sin el no podriamos ni realizar cursores, ni exec_sql, ....

Javier Tirado
IT Consultor
TRENTIA Consulting
BUSINESS INTELLIGENCE (http://www.trentia.es)
Título: Re: Querys Dinamicos
Publicado por: lencho en Lunes 23 de Abril de 2007, 21:50
Cita de: "trentia"
Transact SQL es el lenguaje de programación de .NET, es decir, sin el no podriamos ni realizar cursores, ni exec_sql, ....

Javier Tirado
IT Consultor
TRENTIA Consulting
BUSINESS INTELLIGENCE (http://www.trentia.es)
ummm.

Una cosa es :
Citar
Todas las aplicaciones que se comunican con SQL Server lo hacen enviando instrucciones Transact-SQL al servidor
y otra cosa es
Citar
Transact SQL es el lenguaje de programación de .NET


BYTE.
Título: Re: Querys Dinamicos
Publicado por: F_Tanori en Martes 24 de Abril de 2007, 01:10
Ya que estamos hablando de querys dinamicos :P

alguien me puede dar una mano con esto?

tengo este query  con execute pero necesito sacarlo a una variable

Código: Text
  1.  
  2. declare @var int
  3.  
  4. execute('select count(p.idproyecto) from actividades a,proyectos p where a.idproyecto=p.idproyecto and p.idproyecto in (1,12,3,7)')
  5.  


Saludos
Título: Re: Querys Dinamicos
Publicado por: lencho en Martes 24 de Abril de 2007, 01:39
Cita de: "F_Tanori"
tengo este query  con execute pero necesito sacarlo a una variable

Código: Text
  1.  
  2. declare @var int
  3.  
  4. execute('select count(p.idproyecto) from actividades a,proyectos p where a.idproyecto=p.idproyecto and p.idproyecto in (1,12,3,7)')
  5.  


Saludos
espero y haber entendido tu pedido.
Código: Text
  1.  
  2. declare @var int
  3. Select @var  = (select count(p.idproyecto) from actividades a,proyectos p where a.idproyecto=p.idproyecto and p.idproyecto in (1,12,3,7))
  4.  

por si acaso, por que pusiste la consulta entre comillas simples ???



BYTE.
Título: Re: Querys Dinamicos
Publicado por: F_Tanori en Viernes 1 de Junio de 2007, 06:07
Cita de: "lencho"
por si acaso, por que pusiste la consulta entre comillas simples ???
BYTE.

Es que lo que queria era ejecutar la cadena que contenia SQL, pero queria devolver resultados

Lo arreglamos con SP_EXECUTESQL (http://www.hayes.ch/sql/sql_dinamico.html#sp_executesql)

:)


Saludos