Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

variable sql

Estas en el tema de variable sql en el foro de SQL Server en Foros del Web. Hola a todos, quisiera saber como hacer una consulta donde el nombre de la tabla va cambiando pero no se como hacer el select. declare ...
  #1 (permalink)  
Antiguo 11/01/2010, 12:52
 
Fecha de Ingreso: octubre-2008
Mensajes: 31
Antigüedad: 15 años, 6 meses
Puntos: 0
variable sql

Hola a todos, quisiera saber como hacer una consulta donde el nombre de la tabla va cambiando pero no se como hacer el select.


declare @x char(1)
set @x = 'nombre_de_mi_tabla'

ahora solo quiero un select a esa tabla, pero como les digo la variable que es el nombre de la tabla va cambiando de acuerdo a un case.

ahora quiero un select pero el nombre de la tabla es la variable, como pongo en el select el nombre de la variable?


select * from @x ??? --- NO
como lo corrijo?

ojala me puedan ayudar gracias
  #2 (permalink)  
Antiguo 11/01/2010, 13:09
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: variable sql

Tendrias que utilizar sql dinamico..

Código:
Execute ('SELECT * FROM ' + @MiTabla )
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 11/01/2010, 15:10
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: variable sql

Ya quedamos que se deje de utilizar el

/*
EXEC (@Variable),

por

EXEC SP_EXECUTESQL @NVarchar
*/
  #4 (permalink)  
Antiguo 11/01/2010, 15:29
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: variable sql

si es correcto, porque el sp_executesql genera un plan de execucion...

aunque supongo que generaria uno diferente por cada table..

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #5 (permalink)  
Antiguo 12/01/2010, 10:01
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: variable sql

Y que posteriormente, no sabemos cuando, el EXEC (@String), desaparezca.
  #6 (permalink)  
Antiguo 12/01/2010, 13:15
 
Fecha de Ingreso: febrero-2009
Mensajes: 312
Antigüedad: 15 años, 2 meses
Puntos: 4
Respuesta: variable sql

Hola.

Que yo sepa el EXECUTE o EXEC es un comando Transact SQL, MS SQL Server se basa en éste. SP_EXECUTESQL es un proc. Quién lo invoca sigue siendo EXEC
No se hasta que punto se podrán deshacer de él...

Saludos
  #7 (permalink)  
Antiguo 12/01/2010, 17:02
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: variable sql

Tienes razon, no se que en que pueda ser substituido, solo hay que seguir las recomendaciones:

"Para ejecutar una cadena, se recomienda utilizar el procedimiento almacenado sp_executesql, en lugar de una instrucción EXECUTE. Puesto que este procedimiento almacenado admite la sustitución de parámetros, sp_executesql es no sólo más versátil que EXECUTE, sino que, como además genera planes de ejecución con más probabilidades de que SQL Server los vuelva a utilizar, resulta más eficaz que éste."
  #8 (permalink)  
Antiguo 13/01/2010, 19:37
 
Fecha de Ingreso: octubre-2008
Mensajes: 31
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: variable sql

Gracias a todos amigos

Etiquetas: sql, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:36.