使用MS SQL Server 2016查看View和dymanic SQL查询之间的联合

时间:2017-01-11 17:03:49

标签: sql sql-server dynamic-sql sql-server-2016

我正在使用Microsoft SQL Server 2016尝试将来自View和真实表的数据组合到临时表中。 View BoxAndChannel保存我想要与之组合的表的名称。我有同一个表的x个实例,但有不同的表名。表的架构是相同的。

我有一个View,它包含我需要获取的表和列的名称。基于View BoxAndChannel中的值,我将不得不从正确的表和列中选择数据。

修改

我想要合并此表 BoxAndChannel 中的每一行 enter image description here

将列中的数据作为表中的i ColumnName,如TableName。

Table1和Table2具有相同的架构,两者都如下图所示。

表1 /表2

enter image description here

希望以这样的结果结束:

基于第一张图片中BoxAndChannel的第1行。 enter image description here

总结一下:我必须从BoxAndChannel中选择每一行,然后查看TableName和ColumnName中的值,并从表和列中选择具有相同名称的值。

1 个答案:

答案 0 :(得分:0)

您无法在一个查询中直接执行此操作。将它复制到临时表可能是你最好的赌注之一。

DECLARE @test TABLE ( col1 INT, col2 INT, col3 INT )

INSERT INTO @test
EXEC sp_executesql N'select 1, 2, 3'

SELECT 4, 5, 6
UNION ALL 
SELECT * FROM @test