从表中选择,表名存储在另一个表中

时间:2014-07-24 17:35:00

标签: sql sql-server

我正在尝试编写一个查询,在其中我可以从一系列表中选择数据。我希望能够从另一个表中提取这些表名;我不想写 select * from tableA union select * from tableB等。

使问题复杂化的另一个限制是我的查询必须以select开头。

我尝试在select语句中使用OPENQUERY,但我尝试访问的服务器“未配置为DATA ACCESS。”

1 个答案:

答案 0 :(得分:0)

您可以这样做:

DECLARE   @SQL AS VARCHAR(MAX);

SELECT    @SQL = COALESCE(@SQL + ' ', '') +
          'SELECT * FROM ' + TableName +
          CASE
            WHEN TableName = MAX(TableName) OVER () THEN ''
            ELSE ' UNION ALL '
          END
FROM      TableNames;

EXEC(@SQL);