是否有命令确定给定关系是table
还是view
?
我使用的试错方法是:
SHOW CREATE VIEW table_name
如果它是table
,而不是view
,我的数据库软件(DBeaver中的Presto)会给我一个错误:
关系
table_name
是table
,而不是view
我认为这个错误来自内部运行的类似命令来审查我的查询。如果它是view
,那么命令当然有效。
答案 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'