我正在尝试编写一个查询,在其中我可以从一系列表中选择数据。我希望能够从另一个表中提取这些表名;我不想写
select * from tableA union select * from tableB
等。
使问题复杂化的另一个限制是我的查询必须以select
开头。
我尝试在select语句中使用OPENQUERY,但我尝试访问的服务器“未配置为DATA ACCESS。”
答案 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);