2017-05-25 44 views
0

我正在研究依赖于Teradata对象元信息来执行一些检查和测试的应用程序。使用 'SHOW VIEW',我注意到,意见可以通过两种方式来指定:显式指定返回列的视图和不显示列的视图之间的区别(Teradata)是什么?

1)显式列

REPLACE VIEW dw_v_customer 
(
    col1, col2 
) 
AS LOCK ROW ACCESS 
SELECT 
    t1.col1, t2.col2 
FROM table1 t1 
    LEFT OUTER JOIN table2 t2 

2)没有明确的列

REPLACE VIEW dw_v_customer 
AS LOCK ROW ACCESS 
SELECT 
    t1.col1, t2.col2 
FROM table1 t1 
    LEFT OUTER JOIN table2 t2 

问题:是这些创建/替换视图定义的方式有什么不同?

+2

没有真正的区别。但#1中的显式列名将覆盖别名,例如'REPLACE VIEW dw_v_customer ( foo ) SELECT t1.col1 as bar' result in column name * foo *。如果你想解析输出,你可以考虑使用'SHOW IN XML VIEW'来代替,这里也包括数据类型。 – dnoeth

+0

@dnoeth - 所以,括号中的列将是最终的别名。 'SHOW IN XML VIEW'对于查找数据类型非常有用,因为'columnsv'似乎只显示表(列)。我认为你的评论可以成为这个问题的答案。谢谢。 – Alexei

回答

0

它们是相同的。没有区别。第一个版本只是列出了明确的列和顺序。