SQL Server - Subconsulta en la FROM

 
Vista:

Subconsulta en la FROM

Publicado por Julen (2 intervenciones) el 24/03/2011 21:56:16
Buenas.

Estoy intentando meter el nombre de una tabla en una FROM mediante una subconsulta de la siguiente manera:

SELECT *
FROM (SELECT nombre_tabla FROM dbo.prueba WHERE codigo = 1)

ERROR: Mens. 102, Nivel 15, Estado 1, Línea 1
Sintaxis incorrecta cerca de ')'.



La columna "nombre_tabla" es de tipo varchar. Evidentemente, la tabla con el nombre que devuelve dicha columna existe. Una solución que ha encontrado una compañera ha sido la siguiente:


DECLARE @sql AS VARCHAR(400), @nombre AS VARCHAR(15)

SELECT @nombre = nombre_tabla FROM dbo.prueba WHERE codigo = 1

SET @sql = 'SELECT * FROM ' + @nombre
exec(@sql)



Pero, para el programa que estoy utilizando no sirve, necesito que sea una única orden, todo integrado en una SELECT. ¿Alguna solución?

Muchas gracias de antemano y saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 4
Ha disminuido su posición en 43 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Subconsulta en la FROM

Publicado por Leonardo Josué (79 intervenciones) el 25/03/2011 15:09:43
Hola Julen: el la consulta que pones de ejemplo te falta definir un Alias para la subconsulta:

SELECT *
FROM (SELECT nombre_tabla FROM dbo.prueba WHERE codigo = 1) ALIAS

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Subconsulta en la FROM

Publicado por Julen (2 intervenciones) el 25/03/2011 21:17:43
Buenas.

Tienes razón. Lo he probado en un SQL Server 2008 y funciona, pero en un SQL Server 2000 no, supongo que no tendrá esa funcionalidad.

Gracias por la respuesta y un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar