如何使用其定义替换视图获取T-SQL查询?

时间:2017-11-29 09:26:20

标签: sql-server tsql

我正在使用BI数据库,其中一些查询访问许多视图,而视图又从其他视图查询。有些查询有3-4级视图,这会将调试性能变成噩梦。

有没有办法让#34;变平" SQL查询中的所有视图,用它们的定义替换它们?我会使用这些查询来调试性能问题并将它们修复到各自的视图定义中,并探索我还不完全熟悉的数据模型。

以下是我想要实现的一个例子:

-- Original query
SELECT v1.foo
    ,v1.bar
FROM view1 v1

-- view1
CREATE VIEW view1
AS
SELECT v2.baz AS foo
    ,v2.boom AS bar
FROM view2 v2

-- view2
CREATE VIEW view2
AS
SELECT baz,
     boom
FROM footable

-- Desired query
SELECT view1.foo
    ,view1.bar
FROM (
    SELECT view2.baz AS foo
        ,view2.boom AS bar
    FROM (
        SELECT baz
            ,boom
        FROM footable
        ) view2
    ) view1

0 个答案:

没有答案