用于区分表和视图的命令

时间:2017-10-16 06:46:17

标签: sql presto dbeaver

是否有命令确定给定关系是table还是view

我使用的试错方法是:

SHOW CREATE VIEW table_name

如果它是table,而不是view,我的数据库软件(DBeaver中的Presto)会给我一个错误:

  

关系table_nametable,而不是view

我认为这个错误来自内部运行的类似命令来审查我的查询。如果它是view,那么命令当然有效。

2 个答案:

答案 0 :(得分:2)

以下将显示有关所有可用表的信息表,包括view个和table个:

SELECT * FROM information_schema.tables

有关详细信息,请参阅Information Schema

答案 1 :(得分:0)

在SQL Server中,可以使用Sys.Objects中的“类型”列来区分表或视图。如果“列类型”中的值为“ V”,则为“视图”;否则,如果列类型中的值为“ U”,则其为表

要检查它是否是表,请在查询下面使用

SELECT DISTINCT NAME, O.TYPE FROM SYS.OBJECTS O WHERE O.NAME LIKE 'Prefix%' AND O.TYPE='U'

要检查它是否为视图,请在查询下面使用

SELECT DISTINCT NAME, O.TYPE FROM SYS.OBJECTS O WHERE O.NAME LIKE 'Prefix%' AND O.TYPE='V'